一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Centos下批量替换文件中的内容shell脚本

时间:2015-12-08 编辑:简简单单 来源:一聚教程网

Centos批量替换文件内容

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

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

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

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

热门栏目