我查看了其他一些外围问题,但无法找到解决我的问题的方法,所以如果这与我错过的内容重复,我很抱歉。
基本上,我有以下 GNU sed 命令:
sed -E -imr 's/^(\w)+/(\w)+$/g' file
这应该用该行的最后一个单词替换一行的第一个单词。
第一个正则表达式^(\w)+效果很好,并且匹配每行的第一个单词。问题是该命令将第一个单词替换为文字字符串(w)+$
我试图逃避反斜杠、括号、运算符,但我没有运气让正则表达式在命令的输出部分工作。
可以使用正则表达式捕获组来替换不同的正则表达式捕获组吗?什么需要转义,或者需要使用什么替代语法?
笔记
我在 macOS 上使用来自 brew installed coreutils 的 GNU sed,因此这个问题的答案可能不适用于其他版本的 sed,例如 macOS 上的本机 BSD。