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

更新时间:2020-04-02    来源:Google    手机版     字体:

【www.bbyears.com--Google】


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

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

命令结构如下:

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

下面这个例子将当前目录及所有子目录下的所有sql文件中的“恋香缘”替换为“www.111cn.net”
find -name *.sql | xargs perl -pi -e "s|恋香缘|www.111cn.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’ {} \;

本文来源:http://www.bbyears.com/seo/91410.html