regex - 用 sed 替换两个已知字符串之间的未知字符串

标签 regex bash sed

我有一个包含以下内容的文件:

WORD1 WORD2 WORD3

如何使用sed将WORD1和WORD3之间的字符串替换为foo,使文件内容变为如下内容?:

WORD1 foo WORD3

我尝试了以下方法,但显然我遗漏了一些东西,因为它没有产生预期的结果:

sed -i '' 's/WORD1.*WORD3/foo/g' file.txt

最佳答案

sed -i 's/WORD1.*WORD3/WORD1 foo WORD3/g' file.txt

sed -i 's/(WORD1).*(WORD3)/\1 foo \2/g' file.txt

您可能需要转义圆括号,这取决于您的 sed 变体。

关于regex - 用 sed 替换两个已知字符串之间的未知字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10613643/

相关文章:

regex - 如何在 shell 脚本中使用正则表达式?

regex - Grep中 'word'的含义

linux - telnet 确定开放端口(shell 脚本)

bash - 根据分隔符拆分文件,然后加入单独的行

bash - 如何从字符串中提取子字符串

javascript - 有没有人有一个函数可以将转义字符添加到纯文本字符串中,以便可以在javascript的正则表达式中将其逐字对待?

JavaScript 正则表达式 .*?

c++ - 如何在其参数中使用带有变量的 QProcess?

linux - 提交后 Hook 有问题

regex - 指定 'inverted' 范围的 sed 行号范围