Ⅰ linux下有个文件中有几个相同的字符串,我想要用命令替换其中的一个有什么方法,坐等答案
引用了stablish 写的一个脚本 :
单纯的依靠mv命令做不到,需要脚本来实现
编写脚本 rename 如下
#----------------------------------------------
#!/bin/sh
ls -l $1 | grep ^[^d] | awk ''| while read line; do
do=`echo $line | grep $2`
if [ ! "$do" = "" ]; then
newname=`echo $line | sed 's/'$2'/'$3'/g'`
echo "rename $line to $newname ..."
mv $1/$line $1/$newname
fi
done
#------------------------------------------------
将以上保存为 rename文件,
然后运行
chmod +x rename
使rename可运行
然后按照如下格式执行rename
假设rename在当前路径
$./rename [fullpathtofiles] .sql.cluster1 .sql
[fullpathtofiles] 指向你的BAOAN102671.sql.cluster1 这些文件的全路径即可
参考以下我的演示 ,将具体路径替换到你的即可,实际测试通过
--------------------------------
root@bogon~/testmv# ls
12343234234.sql.cluster1 323423423423.sql.cluster1 sdfdssddd.sql.cluster1
root@bogon~/testmv# cd ..
root@bogon~# ./rename ./testmv/ .sql.cluster1 .sql
rename 12343234234.sql.cluster1 to 12343234234.sql ...
rename 323423423423.sql.cluster1 to 323423423423.sql ...
rename sdfdssddd.sql.cluster1 to sdfdssddd.sql ...
root@bogon~# cd testmv
root@bogon~/testmv# ls
12343234234.sql 323423423423.sql sdfdssddd.sql
Ⅱ 在LINUX中 如何用sed将整行替换成给定字符串
sed -e 's/^.*$/string/' filename
其中string是你要替换的字符串
以上命令是把所有行都替换成某个字符串,如果你要只替换某一行,可以在前面加上行号:
sed -e '3s/.*$/string/' ......
Ⅲ linux如何替换文件中某个字符串
使用seek吧,主要搜这个使用就成,可以查找替换,主要就是正则表达式,
Ⅳ linux 中如何用vi编辑器替换相同的字符
按I进入输入模式就可以了
然后再按Esc键进入末行模式
输入WQ保存
Q!是退出
Ⅳ Linux批量替换多个文件中字符串
linux批量替换多个文件中字符串linux下批量替换多个文件中的字符串的简单方法。用sed命令可以批量替换多个文件中的字符串。
用sed命令可以批量替换多个文件中的字符串。sed
-i
s/原字符串/新字符串/g
`grep
原字符串
-rl
所在目录`例如:我要把mahuinan替换为huinanma,执行命令:sed
-i
s/mahuinan/huinanma/g
'grep
mahuinan
-rl
/www'这是目前linux最简单的批量替换字符串命令了!具体格式如下:sed
-i
s/oldString/newString/g
`grep
oldString
-rl
/path`实例代码:sed
-i
s/大小多少/日月水火/g
`grep
大小多少
-rl
/usr/aa`sed
-i
s/大小多少/日月水火/g
`grep
大小多少
-rl
./`
Ⅵ linux命令行替换文件内容
通过你的描述,替换命令如下:
1、tr 命令来进行替换
[root@localhost ss1]# tr '111' '2222222' < aa.txt
2、sed 命令
[root@localhost ss1]# sed ‘s/wyf/wzw/g’ ./person.txt
这里使用sed 内置命令s 来实现替换功能,并且使用了全局替换标志g 表示替换文件中匹配wyf的所有字符串。
1、tr 命令在接文件时比较特殊,需要输入重定向符号 “<”
2、凡是在文本中出现的“111”均应转换成“222222”,而不是仅仅将单个进行转换,这个要注意。
3、在使用sed 命令时,要注意一下语法格式,将要替换的文本“wyf”放在第一个和第二个“/” 之间,将替换后的文本“wzw”放到第二个和第三个“/” 之间。这个要注意。
以上就是我的回答,在具体操作时,可能会有出入,如有问题可私信+关注,我会第一时间来进行回复追答,希望我的回答能帮到你。
Ⅶ Linux下vi编译器下 替换字符操作是什么命令
:substitute或者缩写形式:s
:[range]substitute/from/to/[flags]
该命令将由[range]指定的行中的字符串"from"替换为"to"。比如将"Professor"替换为"Teacher":
:%substitute/Professor/Teacher/
%(命令中的[range]部分)表示将此命令作用于所有行,如果省略这一部分,命令将只作用于当前行。
以上命令只将每行中的第一个Professor换为Teacher,如果需要全部替换,必须在[flag]中指定为g:
:%substitute/Professor/Teacher/g
或者:
:%s/Professor/Teacher/g
以上内容及例子全部来自vim用户手册。
Ⅷ Linux下的shell编程 如何替换文件中的内容
可以这样做:
方法1:sed -i 's/被替换的内容/要替换成的内容/' file
方法2:sed 's/被替换的内容/要替换成的内容/g' file > file.out;mv file.out file。
(8)linux字符串替换命令扩展阅读:
Shell编程的常用技巧:
一、自动补齐:在linux中对于命令或路径,可以TAB键进行自动补全,以下事项需要注意:
1、只存在一个该输入字符开头的命令或路径,此时自动补全;
2、存在多个该输入字符开头的命令或路径,此时第一次点击TAB键无效,此时再次点击TAB会罗列出所有该字符开头的命令或路径,继续输入直到仅仅剩一个时自动补全;
3、如果命令已经是完整的,TAB键则是本来的移动功能;而路径的话要看命令自身的行为决定后续动作。
二、历史命令
1、history命令可以显示历史执行过的命令;
2、使用!+序号执行该序号对应的命令;
3、使用!+字符执行该字符开头的最后一次执行的指令。
三、命令别名
1、实现别名:alias ddd="df -Th";
2、删除别名:unalias ddd;
3、显示所有别名命令列表:alias;
4、存放位置:~/.bashrc (加入该文件后,重启后不会消失)。
四、重定向
1、重定向标准输入:< 命令接收输入的途径由键盘改为文件;
2、重定向标准输出:> 将命令的执行结果输出到指定文件,而不是直接显示到屏幕;
3、重定向标准输出:>> 将命令的执行结果追加输出到指定文件;
4、重定向标准错误:2> 清除指定文件的内容,并把标准错误信息保存到指定文件;
5、重定向标准错误:2>> 标准错误信息追加到指定文件;
6、重定向标准输出和标准错误:&> 将标准输出、标准错误信息全部保存到指定文件,而不是直接显示在屏幕上。
Ⅸ linux使用sed命令如何替换两个字符串之间的字符串
root@localhost:~# echo enable="true",url="http://10.25.136.232",showSlider="true",
enable=true,url=http://10.25.136.232,showSlider=true,
root@localhost:~# echo enable="true",url="http://10.25.136.232",showSlider="true",|sed 's@url=".*",s@url="https:\/\/test.com",s@g'
enable=true,url=http://10.25.136.232,showSlider=true,