linux中如何实现删除每行匹配的最后一个指定的字符之后即之前的内容

 

001、 删除每一行最后一个匹配的特定字符后边的部分

[root@localhost test]# ls
a.txt
[root@localhost test]# cat a.txt          ## 测试数据
ab      ad      aj
di      ii      rr
[root@localhost test]# sed 's/\(.*\)a\(.*\)/\1a/' a.txt        ## 删除最后一个匹配的a后边的部分
ab      ad      a
di      ii      rr
[root@localhost test]# sed 's/\(.*\)i\(.*\)/\1i/' a.txt        ##删除最后一个匹配的i之后的部分
ab      ad      aj
di      ii

.

 

002、

[root@localhost test]# ls
a.txt
[root@localhost test]# cat a.txt               ## 测试数据
ab      ad      aj
di      ii      rr
[root@localhost test]# sed 's/\(.*\)a\(.*\)/a\2/' a.txt      ## 删除最后一个匹配的a之前的部分
aj
di      ii      rr
[root@localhost test]# sed 's/\(.*\)i\(.*\)/i\2/' a.txt       ## 删除最后一个匹配的i之前的部分
ab      ad      aj
i       rr

 。

 

posted @ 2025-04-22 20:46  小鲨鱼2018  阅读(47)  评论(0)    收藏  举报