正则表达式替换每行中最后一次出现的字符串

时间:2011-06-07 20:39:27

标签: regex linux shell scripting sed

我正在使用sed -e 's/\(.*\)ABC/\1DEF/' myfileABC的最后一次出现替换为文件中的DEF

我想修改它,将ABC的最后一次出现替换为文件中每行中的DEF

是否可以使用正则表达式?

由于

1 个答案:

答案 0 :(得分:4)

您需要在sed的末尾添加“g”:

sed -e 's/\(.*\)ABC/\1DEF/g'

这告诉sed替换你的正则表达式的每一个匹配项(“全局”)而不是仅替换第一次出现。

编辑:如果您想确保它替换该行中最后一次出现的ABC,您还应该添加$

sed -e 's/\(.*\)ABC$/\1DEF/g'
相关问题