最初の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
フラグを使用する必要があります。
答え2
GNUソートが必要な場合安定それでは合格する必要があります-s
。それ以外の場合は、同じキーを持つレコードがsort
内部アルゴリズムに従ってランダムな順序で表示されます。