如果我運行這種:有一種意外的結果-u
printf "Will be second line post-sort\nWill be first line post-sort" \
| sort -k1,1
我得到的輸出:
Will be first line post-sort
Will be second line post-sort
預期(關鍵字段相同,但排序使用最後手段比較)。但是,如果我添加了-u選項:
printf "Will be second line post-sort\nWill be first line post-sort" \
| sort -k1,1 -u
我得到的輸出繼電器:
Will be second line post-sort
,而不是預期:
Will be first line post-sort
爲什麼排序-u返回的第一行預排序數據,而不是本例中排序後數據的第一行?
BTW,我可以通過排序(不帶-u)獲得所需的行爲第一:
printf "Will be second line post-sort\nWill be first line post-sort" \
| sort -k1,1 | sort -k1,1 -u
這是一個實現工件。 POSIX [不提供任何保證](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/sort.html)關於選擇具有相同密鑰的多行中的哪一行。你不能依靠它。 –