在Linux系统中,文件内容的批量替换同Windows平台相比要麻烦一点。不过这里可以通过Shell命令或脚本的方式实现批量替换的功能。
笔者使用过两个命令:perl和sed ,接下来会对其做出说明。
首先是perl命令,主要用于文件扫描,提取文件信息并打印
perl -pi -e 's/被替换的字符串/替换后的字符串/g' <替换内容所在文件>
perl 命令后选项居多,这里只会讲解一些常用的选项
-i 编辑文件,就地修改
-e 让Perl程序在命令行中运行
-r 搜索子目录
-l 输出匹配的文件名,常与find连用
-i.bak 将旧文件替换为bak文件
其次是sed命令的使用
sed -i "s/查找字段/替换字段/g" <文件> s代表替换指定字符 g表示行内全面替换
常用的选项有:
-i 直接修改
-e 在命令行上进行sed操作,这是默认选项
-f 此选项后加文件名,代表执行-f 后跟的文件中的sed命令
sed命令同时支持字符的新加,例如要在test.txt的第十行新加一行文本为 welcome!,可以这样操作:
sed '9a\welcome!' test.txt # 这里的9a代表将文本添加到第九行之后,也就是第十行