Linux 中 sed命令如何替换文本中的最后一个指定的字符串

 

1、rev +  sed实现

复制代码
[root@PC1 test1]# ls
a.txt
[root@PC1 test1]# cat a.txt                         ## 测试文本
edab34aberabr
dfjhdsfffgggd
abdfabdfereab
dfabereabfabe
[root@PC1 test1]# rev a.txt | sed 's/ba/NM/' | rev    ##将最后一个出现的ab转换为MN
edab34aberMNr
dfjhdsfffgggd
abdfabdfereMN
dfabereabfMNe
复制代码

 

2、awk + paste 实现

复制代码
[root@PC1 test1]# ls
a.txt
[root@PC1 test1]# cat a.txt        ## 测试文本
edab34aberabr
dfjhdsfffgggd
abdfabdfereab
dfabereabfabe                      ## awk实现
[root@PC1 test1]# awk 'BEGIN{FS = "ab"; OFS = "ab"} {if(NF == 1) {print $0}}; NF = NF -1' a.txt | paste -d "" - <(awk 'BEGIN{FS  = "ab"} {if(NF != 1) {print "QQ"$NF} else {print ""}}' a.txt )
edab34aberQQr
dfjhdsfffgggd
abdfabdfereQQ
dfabereabfQQe
复制代码

 。

 

posted @   小鲨鱼2018  阅读(565)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2022-02-08 python中对列表元素去重复
2022-02-08 python中列表切片的常用方法
2022-02-08 linux 中sed名删除匹配指定字符行及其后若干行
2022-02-08 linux中列出当前文件及目录的绝对路径
点击右上角即可分享
微信分享提示