[英]AWK getline example , please explain the output?
我用getline找到了这个awk
示例,但无法理解它是如何工作的。
seq 5 | awk 'BEGIN { getline; print "Read ahead first line", $0 } {print $0 }'
输出为:
Read ahead first line 1
2
3
4
5
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 }
BEGIN { getline; print "Read ahead first line", $0 }
,awk将从stdin
读取第一条记录,即1
贯通管seq 5 | awk '{...}'
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
seq 5
产生
1
2
3
4
5
awk
的BEGIN
块在主块之前执行。
getline
读取一行,该行在BEGIN
块中显示为$0
。
然后,主块读取剩余的行。
$ seq 5 | awk 'BEGIN { getline; print "BEGIN read", $0} {print "main read", $0 }'
BEGIN read 1
main read 2
main read 3
main read 4
main read 5
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.