linux⼏种常见的⽂件内容查和替换命令
1、通过vim编辑器来替换
vi/vim 中可以使⽤ :s 命令来替换字符串。
:s/well/good/ 替换当前⾏第⼀个 well 为 good
:s/well/good/g 替换当前⾏所有 well 为 good
:n,$s/well/good/ 替换第 n ⾏开始到最后⼀⾏中每⼀⾏的第⼀个 well 为 good
:n,$s/well/good/g 替换第 n ⾏开始到最后⼀⾏中每⼀⾏所有 well 为 good n 为数字,若 n 为 .,表⽰从当前⾏开始到最后⼀⾏
:%s/well/good/(等同于 :g/well/s//good/)替换每⼀⾏的第⼀个 well 为 good
:%s/well/good/g(等同于 :g/well/s//good/g)替换每⼀⾏中所有 well 为 good 可以使⽤ # 作为分隔符,此时中间出现的 / 不会作为分隔符:s#well/#good/# 替换当前⾏第⼀个 well/ 为 good/
:%s#/usr/bin#/bin#g 可以把⽂件中所有路径/usr/bin换成/bin
2、sed和grep配合
sed -i s/yyyy/xxxx/g `grep yyyy -rl --include="*.txt" ./`
作⽤:将当前⽬录(包括⼦⽬录)中所有txt⽂件中的yyyy字符串替换为xxxx字符串。其中,
-i 表⽰操作的是⽂件,``括起来的grep命令,表⽰将grep命令的的结果作为操作⽂件。
linux系统vim编辑器s/yyyy/xxxx/表⽰查yyyy并替换为xxxx,后⾯跟g表⽰⼀⾏中有多个yyyy的时候,都替换,⽽不是仅替换第⼀个
另外,如果不需要查⼦⽬录,仅需要在当前⽬录替换,⽤sed命令就⾏了,命令如下:sed -i s/xxxx/yyyy/g ./*.txt
3.find命令查和替换
find -name '要查的⽂件名' | xargs perl -pi -e 's|被替换的字符串|替换后的字符串|g' #查替换当前⽬录下包含字符串并进⾏替换find -name '*.txt' | xargs perl -pi -e 's|被替换内容|替换内容|g' #递归查替换
find . -type f -name '*.html' | xargs perl -pi -e 's|被替换内容|替换内容|g'
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论