在linux中稳定排序

xyz*_*xyz 14 linux sorting shell awk sed

我有一个文件

ksh$ cat test
b d
b c
a b
a a
Run Code Online (Sandbox Code Playgroud)

我想对第一个字段进行排序,但我希望稳定排序,即第二个字段的顺序应该保持不变.我希望输出为:

a b
a a
b d
b c
Run Code Online (Sandbox Code Playgroud)

如果我尝试:

ksh$sort -k1 -s test   
Run Code Online (Sandbox Code Playgroud)

我明白了

a a
a b
b c
b d
Run Code Online (Sandbox Code Playgroud)

请帮忙,

谢谢

Ign*_*ams 23

你忘了约束关键字段了.默认情况下,它一直使用到行尾.

sort -k1,1 -s t.txt
Run Code Online (Sandbox Code Playgroud)

  • 我认为对于那些遇到同样问题的人来说可能值得解释`-s`,但是,与原始提问者不同,我不知道它.`-s`与`--stable`相同,没有它,其他列的顺序将不会被保留. (2认同)