Linux 常用替换命令三种方法(perl、shell、sed)

举例在文件服务器上有一文件,文件名字:aaa.txt
文件内容为:

name=guodong
sex=nan
age=100

1、perl:find -name '文件名' | xargs perl -pi -e 's|被替换的字符串|替换后的字符串|g'       ----->      find -name 'aaa.txt' | xargs perl -pi -e 's|name|nam|g'   
xargs说明:
-a 自动分隔模式,用空格分隔$_并保存到@F中。相当于@F = split ”。分隔符可以使用-F参数指定
-F 指定-a的分隔符,可以使用正则表达式
-e 执行指定的脚本。
-i<扩展名> 原地替换文件,并将旧文件用指定的扩展名备份。不指定扩展名则不备份。
-l 对输入内容自动chomp,对输出内容自动添加换行
-n 自动循环,相当于 while(<>) { 脚本; }
-p 自动循环+自动输出,相当于 while(<>) { 脚本; print; }

2、shell:grep "abc" * -R | awk -F: '{print $1}' | sort | uniq | xargs sed -i 's/abc/abcde/g'
3、sed:sed -i "s|原字符串|新字符串|g"  文件名         ------->      sed -i "s|name|na|g"   aaa.txt
注意:
-i 表示inplace edit,就地修改文件
-r 表示搜索子目录
-l 表示输出匹配的文件名
s表示替换,d表示删除

posted @ 2023-01-30 16:34  郭慕荣  阅读(654)  评论(0编辑  收藏  举报