正则expression式来replace每行中最后一次出现的string

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

我想修改它来replace文件中每行的 DEF最后一次出现的ABC

正则expression式有可能吗?

谢谢

Solutions Collecting From Web of "正则expression式来replace每行中最后一次出现的string"

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

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

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

编辑:你也应该添加一个$ ,如果你想确保它正在取代ABC上的最后一次出现:

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