Centos下批量替换文件中指定字符串

作者:袖梨 2022-06-30


这两天使用火车头采集了一些数据,由于生成了很多SQL文件。我想将每个SQL文件中的固定内容替换为另外的内容.

手工一个个改文件配置有点不太实际,所以google了一下,找到批量替换文件内容的好方法。

命令结构如下:

find -name '要查找的文件名' | xargs perl -pi -e 's|被替换的字符串|替换后的字符串|g'

下面这个例子将当前目录及所有子目录下的所有sql文件中的“恋香缘”替换为“www.111com.net”
find -name *.sql | xargs perl -pi -e 's|恋香缘|www.111com.net|g'


这里用到了Perl语言,

perl -pi -e

在Perl 命令中加上-e 选项,后跟一行代码,那它就会像运行一个普通的Perl 脚本那样运行该代码.

从命令行中使用Perl 能够帮助实现一些强大的、实时的转换。认真研究正则表达式,并正确地使用,将会为您省去大量的手工编辑工作。

把/usr/local/apache/conf下的所有conf的文件内容里含有【/usr/local/apache/htdocs】,改为【/data/wwwroot】。具体操作如下:

#sed -i “s//usr/local/apache/htdocs//data/wwwroot/g” `find . -name “*.conf” | xargs grep “/usr/local/apache/htdocs” -rl`
或者

#find . -type f -exec sed -i ‘s#/usr/local/apache/htdocs#/data/wwwroot#g’ {} ;

相关文章

精彩推荐