【问题标题】:Grep Regex: List all lines exceptGrep Regex:列出所有行,除了
【发布时间】:2012-04-17 10:44:33
【问题描述】:

我正在尝试从包含字母“T”的文本文件中自动删除所有行,该字母“T”后面没有紧跟“H”。我一直在使用 grep 并将输出发送到另一个文件,但我想不出能帮助我做到这一点的神奇正则表达式。

如果 grep 不是正确使用的工具,我不介意使用 awk、sed 或其他一些 linux 工具。

【问题讨论】:

    标签: regex


    【解决方案1】:

    应该这样做:

    grep -v 'T[^H]'
    

    -v : 打印不匹配的行

    [^H]:匹配除 H 以外的任何字符

    【讨论】:

    • .* 的两个实例都不是必需的,因为 grep 会扫描整行以寻找匹配项
    【解决方案2】:

    你可以这样做:

    grep -v 'T[^H]' input
    

    -v 是 grep 的反向匹配选项,它不会列出匹配模式的行。

    使用的正则表达式是T[^H],它匹配任何作为T 后跟除H 之外的任何字符的行。

    【讨论】:

      猜你喜欢
      • 2020-01-07
      • 1970-01-01
      • 1970-01-01
      • 2018-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-24
      • 1970-01-01
      相关资源
      最近更新 更多