为什么awk中的sort输入必须通过管道传输?

时间:2018-03-01 18:50:04

标签: bash sorting awk

了解awk只是一个简短的: 为什么

awk '{split ($4,a,".");print $1,$2,$3,a[1]|"sort -nk3 "}'

工作(并且按第三列排序,因为它应该是),而这一个

awk '{split ($4,a,".");print $1,$2,$3,a[1];"sort -nk3 "}'

没有?我希望sort处理上一个命令的输出,有或没有管道

1 个答案:

答案 0 :(得分:4)

awk '{split ($4,a,".");print $1,$2,$3,a[1]; "sort -nk3 "}'

没有排序,只是没有带内容的操作字符串" sort ..",print >print |通过交互shell调用不同的行为。请注意,您也可以将其管道传输到awk之外。

awk '{split ($4,a,"."); print $1,$2,$3,a[1]}' | sort -nk3

会正常工作。

tldr; 使用管道来调用排序