GNU 实用程序:排序

5 sort

我在根据前两列对文件进行排序时遇到问题。

文件的布局是:

1 998688068 PizzaFan Insurance 22.47
5 072821325 Plaisio Computers 26.35
4 998688068 PizzaFan Food 27.32
5 456834578 G.Yannopoulos Medical 91.67
Run Code Online (Sandbox Code Playgroud)

…………

我使用了这个命令: sort -n -k 1,2 "$fpath" -o "$fpath.ordered"

排序结果为:

1 473151252 Goodys Food 7.15
1 951515524 Atlantic SuperMarket 41.32
1 998688068 Atlantic SuperMarket 80.23
1 998688068 PizzaFan Food 61.72
1 998688068 PizzaFan Insurance 22.47
2 094321587 Vasilopoulos SuperMarket 6.50
Run Code Online (Sandbox Code Playgroud)

…………

我不明白为什么所有列都被排序(参见第三列和 PizzaFan 保险)

我认为 -k 1,2 意味着对第 1 列进行排序并解决与第 2 列的关系,但这就像它不起作用。

它与使用相同: sort -n "$fpath" -o "$fpath.ordered"

小智 5

如果你想要一个稳定的排序(输入行的相对顺序在平局的情况下被保留),你需要使用-sor--stable标志。