本文主要是介绍Linux【五】-【转】linux 命令批量修改文件内容中某字段,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_21101587/article/details/81203767
---------------------------------------------------------------------------------------------------
- 测试文件的内容
- 复制多个测试文件(批量修改)
- 一个四个测试文件,看效果就行
两种方法修改
1.perl命令替换
格式: perl -p -i -e "s/修改的字段/新字段/g" 文件名(别的路径下需加好路径)
- -a 自动分隔模式,用空格分隔$_并保存到@F中。相当于@F = split ”。分隔符可以使用-F参数指定
- -F 指定-a的分隔符,可以使用正则表达式
- -e 执行指定的脚本。
- -i<扩展名> 原地替换文件,并将旧文件用指定的扩展名备份。不指定扩展名则不备份。
- -l 对输入内容自动chomp,对输出内容自动添加换行
- -n 自动循环,相当于 while(<>) { 脚本; }
- -p 自动循环+自动输出,相当于 while(<>) { 脚本; print; }
例子:
perl -p -i -e "s/123/888/g" test1.txt test2.txt
说明:将test1.txt和test2.txt中的123替换成888
说明:如果想替换所有的txt文件可以用*.txt(perl -p -i -e "s/123/888/g" *.txt )
查看修改后的test1和2的内容:
都替换成功了
2.sed命令下批量替换文件内容
格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径` 文件名
- -i 表示inplace edit,就地修改文件
- -r 表示搜索子目录
- -l 表示输出匹配的文件名
- s表示替换,d表示删除
例子:
说明: 把当前目录下text3.txt里的123都替换为444
查看修改后的test1和2的内容:
sed -i "s/123/444/g" test3.txt
————————————————
版权声明:本文为CSDN博主「猿来如此呀」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_21101587/article/details/81203767
这篇关于Linux【五】-【转】linux 命令批量修改文件内容中某字段的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!