shell-sed中的编辑命令详解(中)

Posted ansonwan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell-sed中的编辑命令详解(中)相关的知识,希望对你有一定的参考价值。

  • 字符串匹配:

sed -i ‘s/root/ROOT/‘ passwd  将文件passwd中,每一行中,匹配的第1个符合条件的字符串替换掉,剩下的不匹配

sed -i ‘s/root/ROOT/2‘ passwd 将文件passwd中,每一行中,匹配到的第2个符合条件的字符串替换掉,剩下的不匹配

sed -i ‘s/root/ROOT/2g‘ passwd 将文件passwd中,每一行中,只替换从第2个开始到剩下的所有的符合条件的字符串(匹配到的第一个符合条件的字符串不做替换)

sed -i ‘s/root/ROOT/g‘ passwad 将文件passwd中,每一行中,符合条件的字符串全部都做匹配换掉(又叫全局搜索匹配替换)

sed -i ‘s/root/ROOT/ig‘ passwad 将文件passwd中,root、Root、rooT、ROot 等都替换成ROOT 即忽略大小写,进行全局替换

  • 文件路径匹配:

sed -n ‘//user/local//=‘ passwad 显示文件passwad中 /user/local/ 所在的行号(匹配模式外新增=,表示显示行号)

  • 反向引用:

test1.sh

asas Ansoaan Wan
aaass Ansooon wann
aaas Ansoeen

 

sed -i ‘s/Anso..n/&s/g‘ test1.sh 中间的两点 .. 表示中间任意两个字符,&表示把匹配到的字符串存起来(就理解成存储的变量) s表示在变量后加上s

所以,匹配Anso..n 中间可以是任何字符的字符串 并在匹配的到字符串后加上s

 

修改后的test1.sh

asas Ansoaans Wan
aaass Ansooons wann
aaas Ansoeens

 

sed -i ‘s/(Anso..ns)/1Y/g‘ test1.sh 也可以使用1 做反向引用,此时需要将匹配pattern用(),阔起来,且再转义一下

 

修改后的test1.sh

asas AnsoaansY Wan
aaass AnsooonsY wann
aaas AnsoeensY

以上是关于shell-sed中的编辑命令详解(中)的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段——cli的终端命令大全

VSCode自定义代码片段4——cli的终端命令大全

VSCode自定义代码片段——git命令操作一个完整流程

VSCode自定义代码片段15——git命令操作一个完整流程

VSCode自定义代码片段15——git命令操作一个完整流程

原子片段:原子编辑器中的多行片段