【问题标题】:Printing lines from a file where a specific field is matched从匹配特定字段的文件中打印行
【发布时间】:2011-04-11 13:59:03
【问题描述】:

我有很多行表格: A:B:C

我想打印第三个字段(由: 分隔的字段)包含特定模式的那些行(完整)。

例子:

新/旧:加利福尼亚/纽约:/ms/dist/fx/PROJ/fx/startScript

new/old:startScript/new york:/ms/dist/fx/PROJ/fx/stopScript

搜索模式 startScript 时,应打印第一行而不是第二行。

谢谢,

贾格拉蒂

【问题讨论】:

    标签: linux unix scripting sed awk


    【解决方案1】:
    awk -F":" '$3~/startScript$/' file
    

    【讨论】:

      【解决方案2】:

      一般的解决方案是使用 awk,但值得注意的是,在您的具体示例中,有一个更简单的解决方案 - 您可以只使用 grep:

      grep 'startScript$' yourfile
      

      【讨论】:

      • 第三个字段可以包含任何形式的模式(本例中为 startScript)。这只是一个例子。模式不能以 /ms/dist/fx 等为前缀。
      【解决方案3】:

      用冒号分隔,然后检查第三个字段:

      awk -F : '$3 ~ /startScript/ { print }'
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-07-22
        • 2013-02-04
        • 2011-02-26
        • 1970-01-01
        • 2011-03-26
        • 2013-05-28
        相关资源
        最近更新 更多