代码之家  ›  专栏  ›  技术社区  ›  houbysoft

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

  •  1
  • houbysoft  · 技术社区  · 15 年前

    我面临以下问题。

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

    blah blah blah blah
    more text
    <tag1>something</tag1>
    <tag2>something else</tag2>
    blah blah meh whatever
    foo bar
    

    sed 's/tag1/tag2/g' sed 's/tag2/tag1/g' ,我会得到一个只有tag1的文件。

    我需要的是“翻转”这两个标签。

    4 回复  |  直到 15 年前
        1
  •  5
  •   Gary    15 年前

    为第一次替换添加一个临时标记怎么样。像这样:

    sed -e 's/tag1/temporarytag/g' -e 's/tag2/tag1/g' -e 's/temporarytag/tag2/g'
    
        2
  •  2
  •   second    15 年前

    sed 's/tag1/tag99/g' 
    sed 's/tag2/tag1/g'
    sed 's/tag99/tag2/g'
    
        3
  •  0
  •   smdrager    15 年前

    将tag1替换为唯一的(tag3),然后将tag2设置为tag1,然后将tag3设置为tag2。

        4
  •  0
  •   ghostdog74    15 年前
    $ sed 's/tag1/tmp/g;s/tag2/tag1/g;s/tmp/tag2/g' file
    
    推荐文章