我在 getline 中找到了此awk
示例,但无法理解其工作原理。
seq 5 | awk 'BEGIN { getline; print "Read ahead first line", $0 } {print $0 }'
输出结果为:
Read ahead first line 1
2
3
4
5
答案 0 :(得分:1)
seq 5 | awk 'BEGIN { getline; print "Read ahead first line", $0 } {print $0 }'
seq 5你会得到
$ seq 5
1
2
3
4
5
来自BEGIN { getline; print "Read ahead first line", $0 }
,awk会从stdin
读取第一条记录,即1
通过管道seq 5 | awk '{...}'
(first program | second program
)
管道用于将流从一个程序重定向到另一个程序。当程序的标准输出通过管道发送给另一个
$ seq 5 | awk 'BEGIN { getline; print "Read ahead first line", $0 }'
Read ahead first line 1
BEGIN块之后的和{print $0 }
将读取2到5的剩余记录,以下是不在BEGIN
块内打印的方法
$ seq 5 | awk 'BEGIN { getline} {print $0}'
2
3
4
5
答案 1 :(得分:0)
seq 5
生成
1
2
3
4
5
awk
的{{1}}块在主块之前执行
BEGIN
读取一行,该行在getline
块中打印为BEGIN
然后主块读取剩余的行。
$0