如何使用shell脚本"翻转替换"文件中的字符串

hou*_*oft 1 string bash shell sed

我面临以下问题.

假设我有一个文件,其中包含以下内容:

blah blah blah blah
more text
<tag1>something</tag1>
<tag2>something else</tag2>
blah blah meh whatever
foo bar
Run Code Online (Sandbox Code Playgroud)

我想要做的是用tag2替换所有出现的tag1,用tag1替换tag2的所有出现.但是,我不知道该怎么做,因为如果我使用类似的东西sed 's/tag1/tag2/g',那么sed 's/tag2/tag1/g'我最终会得到一个只有tag1的文件.

我需要的是"翻转"两个标签.

提前致谢.

Gar*_*ary 5

如何为第一次替换添加临时标签呢?像这样的东西:

sed -e 's/tag1/temporarytag/g' -e 's/tag2/tag1/g' -e 's/temporarytag/tag2/g'
Run Code Online (Sandbox Code Playgroud)