繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM