キー数よりも多くの項目を並べ替えるには、-kを使用してください。

キー数よりも多くの項目を並べ替えるには、-kを使用してください。

sortコマンドを使用して、プロジェクトで使用されている既存のスクリプトを理解しようとしています。

sort -t= -nr -k3 nos 

nos997 998 999 1000などのスペースや数字を含むファイルはどこにありますか?

出力は次のとおりです

999
998
997
1000

最後に1000がなぜ出てくるのか分かりませんね。項目ごとにキーが1つしかない場合はパラメーターが原因であると思われますが、-k3文書に指定されたキー位置がない場合にどのように機能するかを説明するものが見つかりません。

これは、ファイルに4桁の数字が含まれるまで、数字を数値の降順に並べ替える予想結果を提供します。

ベストアンサー1

存在しないソートフィールドを指定すると、sort存在するすべての比較に対してソートキーが空になります。つまり、キー比較は常に同じです。これにより、次の一部が実行されます。基準sortこれは次のことを意味します。全体的にソートキーとして使用する必要があり、オプション、、、 または-d効果はありません。-f-i-n-k

これは、コマンドが次のような効果を持つことを意味します。

sort -r nos

データの歴史的な並べ替えを実行します(-t=ここでは機能しません)。順番が先に出るので逆順で先に来ます997100091


POSIX規格の関連ビット:

-k keydef

[...]

このオプションが指定されていない場合、等価を比較する行は、、、または-uオプションがないかのように並べ替えて(指定されている場合はまだ有効です)、行のすべてのバイトを比較する必要があります。それでも同じを比較する行の書き込み順序が指定されていません。-d-f-i-n-k-r

おすすめ記事