Shell实现文件内容批量替换的方法

在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代表将文本添加到第九行之后,也就是第十行

上一篇:python遍历数组的两种方法


下一篇:带文字的ImageButton[自定义]