[英]Regex to replace last occurrence of a string in each line
我正在使用sed -e 's/\(.*\)ABC/\1DEF/' myfile
将文件中最后一次出现的ABC
替换为DEF
。
我想修改它以将文件中每一行中最后一次出现的ABC
替换为DEF
。
可以用正则表达式吗?
谢谢
您需要在 sed 的末尾添加“g”:
sed -e 's/\(.*\)ABC/\1DEF/g'
这告诉 sed 替换您的正则表达式(“全局”)的每一次出现,而不仅仅是第一次出现。
编辑:您还应该添加一个$
,如果您想确保它替换最后一次出现的 ABC 行:
sed -e 's/\(.*\)ABC$/\1DEF/g'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.