我有一个600MB制表符分隔文件,需要仅使用前两列进行排序.这些列按顺序排列的所有行都应保留在现有顺序中.我努力使用sort并且--key似乎继续按其他列对行进行排序.
这是未分类文件的示例:
1244072768 7234 Z 1244072768 7234 e 1244072768 7234 b 1244072768 7234 r 1244072768 7234 a 1244072768 7341 C 1244072768 7341 a 1244072768 7234 - 1244072768 7341 r 1244072768 7341 t 1244072768 7341 - 1244072769 4237 W 1244072769 4237 a 1244072769 4237 s 1244072769 4237 h 1244072769 4237 -
结果应该是这样的:
1244072768 7234 Z 1244072768 7234 e 1244072768 7234 b 1244072768 7234 r 1244072768 7234 a 1244072768 7234 - 1244072768 7341 C 1244072768 7341 a 1244072768 7341 r 1244072768 7341 t 1244072768 7341 - 1244072769 4237 W 1244072769 4237 a 1244072769 4237 s 1244072769 4237 h 1244072769 4237 -
我试过了sort -k 1n -k 2n test.log;,sort -k 1 -k 2 test.log;而且sort -k 1,2 test.log;所有这些都按整行排序.有没有办法使用标准的linux/unix命令行工具来排序前两列的这个文件?
你应该添加-s以获得稳定的排序:
sort -k 1,2 -s test.log
Run Code Online (Sandbox Code Playgroud)
从手册页:
-s, --stable
stabilize sort by disabling last-resort comparison
| 归档时间: |
|
| 查看次数: |
4970 次 |
| 最近记录: |