码迷,mamicode.com
首页 > 系统相关 > 详细

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

时间:2020-01-14 09:55:39      阅读:95      评论:0      收藏:0      [点我收藏+]

标签:aaa   大小写   忽略   变量   大小   显示   att   全局替换   asa   

  • 字符串匹配:

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中的编辑命令详解(中)

标签:aaa   大小写   忽略   变量   大小   显示   att   全局替换   asa   

原文地址:https://www.cnblogs.com/ansonwan/p/12190073.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!