gpt4 book ai didi

linux - sort -u 的意外结果

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:06:03 26 4
gpt4 key购买 nike

如果我运行这种:

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 

为什么在这种情况下 sort -u 返回预排序数据的第一行而不是后排序数据的第一行?

顺便说一句,我可以通过先排序(不带 -u)来获得所需的行为:

printf "Will be second line post-sort\nWill be first line post-sort" \
| sort -k1,1 | sort -k1,1 -u

最佳答案

我认为您不能准确地依赖输出中的哪一行。 POSIX说:

-u
    Unique: suppress all but one in each set of lines having equal keys.

它并没有说输出中具有相同键的行中的哪一行,只是说只有其中一个。所以如果你想要一个特定的,你应该使用一些其他的工具,比如 awk

关于linux - sort -u 的意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40776245/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com