当我使用awk并将此输出重定向到另一个awk命令时会发生什么?

时间:2015-05-20 11:18:41

标签: shell awk gawk

第一个awk命令的输出是否逐行到下一个awk命令? 例如,给定文件1:

123,1
111,2
345,3
555,4

然后:

awk -F"," '{print $0}' | awk -F"," '{print $2}'

我想知道awk命令是如何在内部工作的。

1 个答案:

答案 0 :(得分:3)

没有。第一个awk的整个输出将通过管道传输到第二个,即awk... file|awk...将启动两个awk进程,而不是1+ file.NumOfLine()个进程。

kent$  cat f
one
two
three

kent$  awk '7' f|awk '{print NR,$0}'
1 one
2 two
3 three

您在最终输出中看到1,2,3,而不是1,1,1

这与" awk命令如何在内部工作无关。",您可能想要阅读有关pipe的内容