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

问题描述 投票:0回答:1

只是简短的了解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处理上一个命令的输出,无论有没有管道?

bash sorting awk
1个回答
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;使用管道来调用排序

© www.soinside.com 2019 - 2024. All rights reserved.