假设我有 'abbc' 字符串并且我想替换:
如果我尝试两次替换,结果不是我想要的:
echo 'abbc' | sed 's/ab/bc/g;s/bc/ab/g'
abab
那么我可以使用什么 sed 命令来替换如下所示?
echo abbc | sed SED_COMMAND
bcab
编辑 :
实际上文本可能有 2 个以上的模式,我不知道我需要多少个替换。由于有一个答案说
sed
是一个流编辑器,它的替换是贪婪的,我认为我需要为此使用一些脚本语言。 最佳答案
也许是这样的:
sed 's/ab/~~/g; s/bc/ab/g; s/~~/bc/g'
将
~
替换为您知道不会出现在字符串中的字符。关于replace - 如何用sed一次替换多个模式?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26568952/