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

Unix grep regex如何grep for

  •  1
  • Lisa  · 技术社区  · 14 年前

    我有一个文本文件

    $ cat test.log
    SYB-01001
    SYB-18913
    SYB-02445
    SYB-21356
    

    SYB-01001
    SYB-18913
    SYB-02445
    

    我试过了,但不知道有什么问题

    grep 'SYB-(18913)|0*)' test.log
    
    4 回复  |  直到 14 年前
        1
  •  5
  •   PP.    14 年前

    使用 -E 用grep标记“扩展正则表达式”。

    例如

    grep -E 'SYB-(0|18913)' test.log
    

    其他注意事项:

    • 括号必须匹配(对于每个需要右括号的左括号)
    • 0* 表示零或更多 0
        2
  •  0
  •   Colin Hebert    14 年前

    试试看:

    grep 'SYB-\(18913\|0*\)' test.log
    

    但你可能不想 0* 0+ 这样更好。

        3
  •  0
  •   ghostdog74    14 年前

    awk '/SYB-(0|18913)/' file
    
        4
  •  -1
  •   Kevin McKelvin    14 年前

    你的支架坏了。尝试

    grep 'SYB-[18913|0*]' test.log