下の入力ファイルの指定されたオプションに対してソートが何も実行されない場合、2行目と3行目が変更されるのはなぜですか?
$ cat test1
1 4
2 5
2 1
3 6
$ sort -n -k 1,1 test1
1 4
2 1
2 5
3 6
ベストアンサー1
ソートキーの仕様に従って等しく比較するときに行全体を語彙的に比較する最後の比較方法です。
GNU実装を使用すると、最終比較を無効にするオプションをsort
追加できます。-s
GNUsort
ソートアルゴリズムは次のとおりです。安定、入力に元の順序が表示されるので、次のようになります。
sort -s -n -k1,1
それ以外の場合:
sort -sn
(比較は数字なので、行全体を数字に変換するか、最初のフィールドを数字に変換して比較するかは違いはありません。)