【问题标题】:How to print next few lines after regex match until another regex match?如何在正则表达式匹配后打印下几行直到另一个正则表达式匹配?
【发布时间】:2022-11-02 14:28:16
【问题描述】:

例如,有一段文字

[task] first
       second
[demo] first
[test] first
[task] first
[task] first

我只想要带有 [task] 的行和下一行,直到出现另一个 [*]。像下面

[task] first
       second
[task] first
[task] first

如何在 shell 脚本中使用 awk 或其他工具来完成它? 我只知道我可以使用

awk '/regex/{print $0>"'$file_name'"}' $file

与[任务]取得联系。请帮我解决这个问题。

【问题讨论】:

    标签: regex shell awk


    【解决方案1】:

    你可以使用这个awk

    awk 'NF == 2 {isTask = ($1 == "[task]")} isTask' file
    
    [task] first
           second
    [task] first
    [task] first
    

    【讨论】:

      猜你喜欢
      • 2014-12-18
      • 1970-01-01
      • 2015-02-24
      • 1970-01-01
      • 2012-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多