【问题标题】:Conditional search and replace in ShellShell中的条件搜索和替换
【发布时间】:2015-10-11 17:51:38
【问题描述】:

我有一个字符串处理需求,我想从第 n 行取一行并编辑它(将 @2 替换为 @3),然后将新编辑的字符串插入第 n+1 行

这是我的输入文件的样子

输入文件:-

x/a   y/a   z/a
x/a@2 y/a@2 z/a@2
x/b   y/b   z/b
x/b@2 y/b@2 z/b@2

预期输出如下。注意带有@3 的第三行。这是我所期待的。

x/a   y/a   z/a
x/a@2 y/a@2 z/a@2
x/a@3 y/a@3 z/a@3
x/b   y/b   z/b
x/b@2 y/b@2 z/b@2

我尝试过的:- 我对sed有基本的了解。所以我能够使用以下方法搜索和替换字符串:

sed '/a@2/  s/a@2/a@3/' -i $file

但是我无法找到一种方法将它插入到它被拾取的下一行。

任何帮助将不胜感激。 TIA

【问题讨论】:

    标签: shell sed csh tcsh


    【解决方案1】:

    您可以在编辑之前简单地打印要编辑的行:

    sed '/a@2/{ p; s/a@2/a@3/g; }'
    

    【讨论】:

      猜你喜欢
      • 2010-10-06
      • 2012-06-12
      • 2014-01-24
      • 2020-04-29
      • 1970-01-01
      • 2018-07-01
      • 2020-03-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多