我正在使用sed -e 's/\(.*\)ABC/\1DEF/' myfile
将ABC
的最后一次出现替换为文件中的DEF
。
我想修改它,将ABC
的最后一次出现替换为文件中每行中的DEF
。
是否可以使用正则表达式?
由于
答案 0 :(得分:4)
您需要在sed的末尾添加“g”:
sed -e 's/\(.*\)ABC/\1DEF/g'
这告诉sed替换你的正则表达式的每一个匹配项(“全局”)而不是仅替换第一次出现。
编辑:如果您想确保它替换该行中最后一次出现的ABC,您还应该添加$
:
sed -e 's/\(.*\)ABC$/\1DEF/g'