在Linux中对2列进行排序

在Linux中对2列进行排序,linux,sorting,Linux,Sorting,我的输入文件如下 A 0 A 2 C2 B 11 C5 D 7 B 3 我希望我的输出如下。请帮助我在linux中使用SORT命令 谢谢 B 11 b3 D 7 C5 C2 A 2 A 0 首先对第二列进行排序,然后对第一列进行排列。可以这样做,但并不漂亮: for key in $(sort -n -k2 -r <inFile | awk 'ex[$1]==0{print $1;ex[$1]=1}'); do awk -vK=$key '$1==K{print}' <inF

我的输入文件如下

A 0
A 2
C2
B 11
C5
D 7
B 3

我希望我的输出如下。请帮助我在linux中使用SORT命令

谢谢

B 11
b3
D 7
C5
C2
A 2
A 0


首先对第二列进行排序,然后对第一列进行排列。

可以这样做,但并不漂亮:

for key in $(sort -n -k2 -r <inFile | awk 'ex[$1]==0{print $1;ex[$1]=1}'); do
    awk -vK=$key '$1==K{print}' <inFile | sort -r -n -k2
done

排序
对于任意顺序来说都很糟糕。您可能应该编写自己的排序。标准的
排序
对自定义标准没有多大帮助。这在
python
js
或任何您熟悉的脚本语言中都应该很容易做到
B 11
B 3
D 7
C 5
C 2
A 2
A 0