【问题标题】:grep with regex syntax on tsv file在 tsv 文件上使用正则表达式语法的 grep
【发布时间】:2014-06-19 15:58:48
【问题描述】:

我有一个日志文件,我想查看它是否有具有特定访问类型的特定服务器的日志

我要查找的行包含类似这样的内容

my-server-name  12.345.67.890   Type0   Stuff   server-access

我关心具有 my-server-name 和 server-access 的行,并希望匹配该行之间的所有内容

我正在尝试这个 grep,但它不起作用,但我认为正则表达式很好

grep -P 'my-server-name.*?server-access' myfile.tsv 

【问题讨论】:

    标签: regex unix logging grep tsv


    【解决方案1】:

    你快到了:

    $ grep -oP '(?<=my-server-name).*(?=server-access)' file
      12.345.67.890   Type0   Stuff
    

    【讨论】:

    • 当我运行时,由于 P 标志,我得到了我认为的 grep 用法的东西
    • 我也测试了正则表达式本身,它不再匹配该行
    • 对我来说效果很好。您的操作系统和 grep 版本是什么?
    【解决方案2】:

    你可以用这个,

    $ grep -oP 'my-server-name\K.*(?=server-access)' file
      12.345.67.890   Type0   Stuff   
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-29
      相关资源
      最近更新 更多