Unixソートで複数のキーをソートする 質問する

Unixソートで複数のキーをソートする 質問する

1 ~ n のキーで並べ替える必要がある、潜在的に大きなファイルがあります。これらのキーの一部は数値である可能性があり、一部は数値ではない可能性があります。これは固定幅の列形式ファイルなので、区切り文字はありません。

Unix ソートでこれを行う良い方法はありますか? 1 つのキーを使用する場合は、「-n」を使用するのと同じくらい簡単です。マニュアル ページを読み、Google で簡単に検索しましたが、良い例は見つかりませんでした。これを実現するにはどうすればよいでしょうか?

注: ファイル サイズが大きくなる可能性があるため、Perl は除外しました。これは最後の手段です。

ベストアンサー1

ただし注意してください:

ファイルを主にフィールド 3 で並べ替え、次にフィールド 2 で並べ替える場合は、次のようにします。

sort -k 3,3 -k 2,2 < inputfile

これではない: sort -k 3 -k 2 < inputfileこれは、フィールド 3 の先頭から行末までの文字列 (潜在的に一意) でファイルをソートします。

-k, --key=POS1[,POS2]     start a key at POS1 (origin 1), end it at POS2
                          (default end of line)

おすすめ記事