bash - 排序命令(MacOS 终端)给出不一致的结果
问题描述
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 行,按预期排序。
解决方案
推荐阅读
- react-native - 试图在左角显示汉堡菜单以打开左侧抽屉?
- c++ - 翻译 Assimp 3D 模型也会旋转
- python - 从 for 循环写入多个 CSV 文件
- javascript - 如果它有另一个元素,如何用元素检查锚标签?
- c++ - 为什么即使我使用了 clean 和 sync 方法,我也不能使用 std::cin 两次?
- angular - 生成命令需要在 Angular 项目中运行?
- logging - 您如何处理在代码中更深入地记录 HTTP 请求和输出跟踪和错误消息的不同任务?
- asp.net - 我的子报告在主报告的每个单元格中显示所有结果
- java - Postgresql 和 JDBC 检查元数据中的 TYPE ENUM
- python - 如何在没有任何排序功能的情况下按字母顺序对字符串数组进行排序?Python