linux中的文本的批量替换
1) 文件内全部替换:
:%s#abc#123#g (如文件内有#,可用/替换,:%s/abc/123/g,如果替换或被替换内容中有/(特别是路径),可用\/转义)
--注:把abc替换成123
(或者: %s/str1/str2/g 用str2替换文件中所有的str1)
2) 文件内局部替换:
:20,30s#abc#123(如文件内有#,可用/替换,:%s/abc/123/g)
--注:把20行到30行内abc替换成123
3)文件夹下全部替换:
格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径`,注意别漏了两个`
例如:替换/home下所有文件中的www.admin99.net为admin99.net
sed -i "s/www.admin99.net/admin99.net/g" `grep www.admin99.net -rl /home`
加grep是为了提高效率,只有存在www.admin99.net的才执行替换
如果只替换单个文件,可以直接用下面的命令
sed -i "s/garden/mirGarden/g" 1.txt
将文件1.txt内的文字“garden”替换成“mirGarden”