仅对一列进行排序,保持其余列不变

use*_*107 5 text-processing sort columns

如何(以数字方式)对文本文件中的特定列进行排序,而不影响其他列(无论它们是已排序还是未排序)?在其他线程上我发现了-s论点,但它确实对其他列进行了排序。

观察

$ cat tmp.txt
1 1
2 3
5 4
1 3

$ sort -s -n -k1,1 tmp.txt
1 1
1 3
2 3
5 4
Run Code Online (Sandbox Code Playgroud)

dev*_*ull 5

如评论中所述,sort单独使用无法实现您想要的效果。

您可以cut输入文件,将相关部分提供给sort,以及paste那些。

$ paste -d' ' <(cut -d' ' -f1 input | sort -n) <(cut -d' ' -f2- input)
1 1
1 3
2 4
5 3
Run Code Online (Sandbox Code Playgroud)