GNUユーティリティ:ソート

GNUユーティリティ:ソート

最初の2つの列に基づいてファイルを並べ替えるのに問題があります。

ファイルのレイアウトは次のとおりです。

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

...

私は次のコマンドを使用しました。 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

...

なぜすべての列をソートする必要があるのか​​わかりません(3番目の列とPizzaFan Insuranceを参照)。

-k 1,2は列1をソートし、列2との関係を解決したいと思いましたが、うまくいかないようです。

以下を使用するのと同じです。 sort -n "$fpath" -o "$fpath.ordered"

ベストアンサー1

安定したソート(タイルが発生したときに入力行の相対的な順序を維持する)が必要な場合、-sまたは--stableフラグを使用する必要があります。

おすすめ記事