0

我有一个命令输出一堆行如下第一个数字是部分第二个数字代表关键字。我希望能够解析关键字 2 3 和 5。输入

11
12
13
14
15
\n
\n
\n
21
22
23
24
25
\n
\n
\n
(2 more sections as such) 

输出

12
13
15
\n
22
23
25
\n 
(continues for other 2 sections)

grep 给了我 12 22 13 23 15 25 (等等)我不太确定如何用 awk 来做。我的最终目标是将其放入脚本中,解析部分(或行)的输出将转到临时文件。

4

2 回答 2

0

这是一种方法:

$ awk '$1~/[235]$/{p=1;print}!$1&&p{p=0;print}' file
12
13
15

22
23
25

为了仅使用单个换行符分隔记录,使用标志p,我们p在第一个块中打印匹配时设置,并且当我们到达每个记录之后的第一个空行时,即!$1我们打印空行并取消设置标志以便忽略接下来的两个。

于 2013-04-22T17:39:42.383 回答
0

带设置的 awkRS

awk '{while(++i<=NF)if($i~/[235]$/)print $i;i=0;print ""}' RS="" file

输出:

12
13
15

22
23
25

编辑

 awk '/^\s*$/{a[NR];if(!(NR-1 in a))print} /[235]$/{print}' file
于 2013-04-22T20:21:00.200 回答