linux中sed命令删除首次匹配字符及其之前的内容或者指定匹配字符及其之前的内容

发布时间 2023-04-15 22:42:33作者: 小鲨鱼2018

 

001、

root@DESKTOP-IDT9S0E:/home/test/test/test# ls
a.txt
root@DESKTOP-IDT9S0E:/home/test/test/test# cat a.txt     ## 测试数据
awQQrQQ24QQ34QQr5
sfewQQ3dsQQkkQQ
saeQQ88QQjjQQdsf
root@DESKTOP-IDT9S0E:/home/test/test/test# sed 's/QQ/tag/' a.txt | sed 's/.*tag//'
rQQ24QQ34QQr5
3dsQQkkQQ
88QQjjQQdsf
## 首先是将一个匹配的字符转换为tag,这个tag应当是唯一的,然后将tag及其之前的内容全部删除即可。

 

 

002、

root@DESKTOP-IDT9S0E:/home/test/test/test# ls
a.txt
root@DESKTOP-IDT9S0E:/home/test/test/test# cat a.txt       ## 测试数据 
awQQrQQ24QQ34QQr5
sfewQQ3dsQQkkQQ
saeQQ88QQjjQQdsf
root@DESKTOP-IDT9S0E:/home/test/test/test# sed 's/QQ/tag/2' a.txt | sed 's/.*tag//'
24QQ34QQr5
kkQQ
jjQQdsf
## 同理将第一个sed将第二次匹配的字符转换为tag,然后删除tag及其之前的内容