【问题标题】:Script to sed lines containing specific wordssed 包含特定单词的行的脚本
【发布时间】:2017-02-11 12:35:12
【问题描述】:

我正在考虑编写一个非常基本的脚本,它首先只是通过我拥有的文本文件进行处理,并且对于包含世界“NU​​MERIC”的每一行都只运行一个 sed 命令。我想知道我如何才能做到这一点?

所以基本上我首先有一个非常大的文本文件,这个脚本需要运行某种 for 循环(或其他东西)才能通过并运行 sed 命令,前提是文本文件中的行包含单词“NUMERIC” '

谢谢

【问题讨论】:

  • 如果您通过提供示例数据来缩小问题范围会更好。下面一位用户通过删除 non-NUMERIC 行回答了您的问题以进行替换。另一位用户通过保留non-NUMERIC 行进行了替换。

标签: linux shell loops sed scripting


【解决方案1】:

或者为什么不这样做:

cat file.txt | grep 'NUMERIC' | sed 's/abc/def/'

在上面的示例中,我正在捕获文件“file.txt”,然后 grepping 字符串“NUMERIC”,这将给出其中包含“NUMERIC”的行,然后应用 sed 操作将 abc 替换为 def (替换您选择的 SED 操作)。

上述命令将在屏幕上打印输出。如果要保存,可以将输出重定向到文件。

下面的例子:

cat file.txt | grep 'NUMERIC' | sed 's/abc/def/' >> new_file.txt

【讨论】:

    【解决方案2】:

    您可以在 sed 命令之前指定一个地址。

    只会处理匹配地址模式的行:

    $ sed '/NUMERIC/s/five/six/' <<< "five NUMERIC"
    six NUMERIC
    

    【讨论】:

      猜你喜欢
      • 2016-02-02
      • 2022-01-22
      • 1970-01-01
      • 1970-01-01
      • 2021-03-19
      • 1970-01-01
      • 2015-04-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多