【问题标题】:get paragraph with awk, and start-of-line regexp使用 awk 和行首正则表达式获取段落
【发布时间】:2016-06-20 21:11:36
【问题描述】:

我使用 awk 从文本文件中获取段落,如下所示:

awk -v RS='' -v ORS='\n\n' '/pattern/' ./textfile

假设我有以下文本文件:

aaa bbb ccc
aaa bbb ccc
aaa bbb ccc

aaa ccc
bbb aaa ccc
bbb aaa ccc

ccc bbb aaa
ccc bbb aaa
ccc bbb aaa

现在我只想要(原始)行之一开始以“bbb”(因此是第二段)的段落。但是 - 使用正则表达式 ^ 将不再起作用,(我认为)因为 RS='' 行; awk 现在只匹配段落的开头。

还有其他方法吗?

【问题讨论】:

    标签: linux shell unix awk gawk


    【解决方案1】:

    ^ 表示字符串的开头。您想要(^|\n) 的行首,例如:

    $ awk -v RS='' -v ORS='\n\n' '/(^|\n)bbb/' file
    aaa ccc
    bbb aaa ccc
    bbb aaa ccc
    

    【讨论】:

      猜你喜欢
      • 2011-04-06
      • 2014-08-05
      • 2010-09-26
      • 1970-01-01
      • 2016-04-02
      • 2017-11-13
      • 2015-08-20
      • 1970-01-01
      • 2013-09-05
      相关资源
      最近更新 更多