这两天使用火车头采集了一些数据,由于生成了很多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’ {} ;