【发布时间】:2012-10-22 02:55:34
【问题描述】:
示例代码是这样的,它对第一列出现的次数进行统计并对结果进行排序。
{ dist[$1]+=1; }
END { for (i in dist) {
print i,dist[i] | "sort"
}
}
在我看来,流程是这样的:
(工作流程 A)
1) 打印dist 中的所有元素,将它们全部保存到缓冲区中
2) 获取缓冲区中的所有元素,并将它们通过管道传递给sort 函数
但在上面的例子中,过程是这样的:
(工作流程 B)
1) 打印dist 中的一个元素,然后通过管道将其传递给sort 函数
2)处理dist中的下一个元素,直到dist中没有新元素
我想知道为什么我不应该这样放置sort:
{ dist[$1]+=1; }
END { for (i in dist) {
print i,dist[i]
}
| "sort"
}
有人知道原因吗?如果我想做WORKFLOW B 这样的工作,我该如何写pipe?
谢谢!
【问题讨论】: