sort 的手册页说
-u, --unique Unique keys. Suppress all lines that have a key that is equal to an already processed one.
但是我得到了我不理解的行为。当我对第 1 列进行排序时,-u 似乎不起作用,当我对第 2 列进行排序时,它可以正常工作,当我对第 3 列进行排序时,它可以正常工作。显然,要么它坏了,要么我很困惑。(可能是后者)。
$ cat tosort.txt
1 A a
3 A a
1 B a
2 B b
3 B a
$ cat -t tosort.txt
1^IA^Ia
3^IA^Ia
1^IB^Ia
2^IB^Ib
3^IB^Ia
$ sort tosort.txt -t$'\t' -k 1 -u
1 A a
1 B a
2 B b
3 A a
3 B a
$ sort tosort.txt -t$'\t' -k 2 -u
1 A a
1 B a
2 B b
$ sort tosort.txt -t$'\t' -k 3 -u
1 A a
2 B b
$
这是一个包含三列的 5 行文件,由制表符分隔。当我对第 1 列进行排序并找到唯一键时,它会返回所有行,按第 1 列排序,即使只有 3 个唯一键。当我排序并找到第 2 列的唯一键时,它返回按第 2 列排序的 3 行,即使只有 2 个唯一键。当我排序并找到第 3 列的唯一键时,它返回 2 行,按预期排序。