【问题标题】:Print ranges of text starting from a line before match从匹配前的一行开始打印文本范围
【发布时间】:2023-02-16 22:53:28
【问题描述】:

我需要打印在模式匹配之前从一行开始到下一个空白行的文本块。我设法用 awk/sed 做到了,但是从 PATTERN2(作为变量 $ID 传递)出现的行开始,而不是前一个。我的输入文件:

2022/12/28 02:06:29 [Time]
Processing id: PATTERN1
multiple lines follow

2023/01/14 04:06:29 [Time]
Processing id: PATTERN2
multiple lines follow

2023/02/15 08:07:29 [Time]
Processing id: PATTERN3
multiple lines follow

2023/02/16 14:06:29 [Time]
Processing id: PATTERN2
multiple lines follow

....

使用 sed:

sed -n "/Processing id: $ID/,/^$/p" inputfile

用 awk:

awk -v myid="$ID" '$0 ~ "Processing id: "myid,/^$/ {print}' inputfile

期望的输出:

2023/01/14 04:06:29 [Time]
Processing id: PATTERN2
multiple lines follow

2023/02/16 14:06:29 [Time]
Processing id: PATTERN2
multiple lines follow

【问题讨论】:

    标签: bash awk sed


    【解决方案1】:

    段落模式:

    $ perl -00 -sne 'print if /$id/' -- -id=PATTERN2 file
    

    输出

    2023/01/14 04:06:29 [Time]
    Processing id: PATTERN2
    multiple lines follow
    
    2023/02/16 14:06:29 [Time]
    Processing id: PATTERN2
    multiple lines follow
    

    【讨论】:

      【解决方案2】:

      $ awk -vid=PATTERN2 'BEGIN{RS="
      
      "}{if ($0 ~ id) print $0, "
      "}' file
      

      输出

      2023/01/14 04:06:29 [Time]
      Processing id: PATTERN2
      multiple lines follow 
      
      2023/02/16 14:06:29 [Time]
      Processing id: PATTERN2
      multiple lines follow
      

      【讨论】:

        【解决方案3】:

        与扩展grep匹配:

        myid="PATTERN2"
        grep -A1 -B1 --group-separator='' "Processing id: $myid" file
        

        2023/01/14 04:06:29 [Time]
        Processing id: PATTERN2
        multiple lines follow
        
        2023/02/16 14:06:29 [Time]
        Processing id: PATTERN2
        multiple lines follow
        

        【讨论】:

          猜你喜欢
          • 2020-06-16
          • 1970-01-01
          • 2017-02-23
          • 1970-01-01
          • 2011-06-20
          • 1970-01-01
          • 2021-11-26
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多