我有一个包含以下内容的文件:
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/