示例代碼如下所示,它對第一列出現的次數進行統計並對結果進行排序。AWK中管道語法的混淆
{ dist[$1]+=1; }
END { for (i in dist) {
print i,dist[i] | "sort"
}
}
在我看來,這個過程是這樣的:
(工作流)
1)打印在dist
所有元素,將它們保存到緩衝區
2)獲取緩衝區中的所有元素,並將它們傳送到sort
函數
但是在上面的例子,該過程是這樣的:
(WORKFLOW B)
1)在dist
打印一個元件,然後通過管道它sort
功能
2)處理中的下一個元素在dist
,直到dist
沒有新的元素,我想知道爲什麼我不應該把sort
這樣的:
{ dist[$1]+=1; }
END { for (i in dist) {
print i,dist[i]
}
| "sort"
}
任何人有任何想法的原因?如果我想完成像WORKFLOW B
這樣的工作,我該如何編寫pipe
?
謝謝!