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

。

浙公网安备 33010602011771号