如何使用内置的"排序"程序同时按两个字段(一个数字,一个字符串)排序?

Vij*_*jay 16 unix linux sorting shell

我有一个文件,让我们说"bigfile",使用以下表格的表格数据,

a1 b2 a3 1
b1 a2 c3 0
...依此类推.

我想在我的Linux机器上使用内置的"排序"程序,所以按第四个字段(数字)排序该文件,然后同时按第一个字段排序.我经历了几次手册页,我能想到的就是,

sort -n -k4,4 -k1,1 bigfile
Run Code Online (Sandbox Code Playgroud)

有没有办法让"排序"做我想要的或我必须编写自己的自定义程序?

谢谢.

wno*_*ise 30

从联机帮助页:

POS是F [.C] [OPTS],其中F是字段编号,C是字段中的字符位置; 两者都是原点1.如果-t和-b都不起作用,则字段中的字符从前一个空格的开头计算.OPTS是一个或多个单字母排序选项,它覆盖该键的全局排序选项.如果没有给出密钥,请使用整行作为密钥.

sort -k4,4n -k1,1 bigfile 应该这样做.

另一种选择是sort -k1,1 bigfile | sort --stable -n -k4,4 稳定排序意味着第四个字段上的连接由初始位置解析,初始位置由排序的第一个通道设置为第一个字段.