红联Linux门户
Linux帮助

替换目录下符合要求的文件里面的特定字符串

发布时间:2015-08-25 10:39:12来源:linux网站作者:木叶火影

find . -name "aomdv*" -print0 | xargs -0 sed -i "s/AOMDV/DPMR/g"


例如上面,就将所有aomdv开头的文件里面所有AOMDV替换为DPMR。


其中-print0和-0是配套使用。原因:


xargs 默认是以空白字符 (空格, TAB, 换行符) 来分割记录的, 因此文件名 ./file 1.log 被解释成了两个记录 ./file 和 1.log, 不幸的是 rm 找不到这两个文件.


为了解决此类问题,我们让 find 在打印出一个文件名之后接着输出一个 NULL 字符 ('\0') 而不是换行符, 然后再告诉 xargs 也用 NULL 字符来作为记录的分隔符. 这就是 find 的 -print0 和 xargs 的 -0 的来历。


UNIX/Linux下的vi/vim编辑器快速替换字符串:http://www.linuxdiyf.com/linux/10900.html

Linux下查找含有某字符串的文件的方法:http://www.linuxdiyf.com/linux/5257.html

Ubuntu命令行查找文件和字符串:http://www.linuxdiyf.com/linux/3845.html

Ubuntu中字符串匹配中大小写不分:http://www.linuxdiyf.com/linux/3663.html