【发布时间】:2019-01-23 23:41:52
【问题描述】:
我正在使用 awk 处理多行记录,其中每条记录的字段数是未知的。这是为了帮助过滤非常大的文件中的记录,因此了解返回记录的行号会很有帮助。我尝试为每条记录指定一个变量,但这似乎很老套,有没有更好的方法来做到这一点?
数据示例(包括行号):
1 | data1 - good
2 | foo bar
3 |
4 | data2 - bad
5 | foo bar
6 | pet cat
7 | name snuggles
8 |
9 | data3 - good
10| foo bar
11| color blue
代码示例:
BEGIN {RS =""; FS="\n"; ORS="\n\n"; OFS=""; x=0}
{
{ x += NF + 1; }
{ if ($1 ~ /bad/) { next; } }
{ print "[", x - NF, "]\n", $0; }
}
我正在寻找的输出是这样的:
[1]
data1 - good
foo bar
[9]
data3 - good
foo bar
color blue
有没有更好的方法来做到这一点,我没有看到?
【问题讨论】:
标签: awk