私は今このブログを読んでいます:https://www.baeldung.com/linux/dir-find-largest-file-recursively
私は次のコマンドを要求します。
find /usr/lib -type f -printf "%s\t%p\n" | sort -n | tail -1
92107656 /usr/lib/x86_64-linux-gnu/libwireshark.so.13.0.3
%s
寸法とパスが印刷されます%p
。しかし、sort -n
パスではなくサイズで並べ替える必要があることをどのように知ることができますか?
おそらく愚かな質問かもしれませんが、とにかく尋ねます。
文書によると、https://man7.org/linux/man-pages/man1/sort.1.html
-n, --numeric-sort
compare according to string numerical value
ソートには文字列数値を使用します。最初の列を具体的に見なければならないことをどうやって知ることができますか?
ベストアンサー1
多くのオプションが
sort
線の比較方法に影響します。
これがどのように機能するかを説明しますinfo coreutils sort invocation
。sort
行ペアは次のように比較されます。各フィールドのペアは、差が見つかるかフィールドが残らなくなるまで、関連するソートオプションに従ってコマンドライン
sort
(参照)で指定された順序で比較されます。--key
キーフィールドを指定しない場合、sort
行全体の主キーが使用されます。。
したがって、sort -n
入力はキーフィールドが指定されていないため、行全体を比較して数値でソートされます(以下の説明を参照)。
-n
--numeric-sort
--sort=numeric
数値順に並べ替えます。各行の先頭にある数字オプションのスペース、オプションのシンボル、
-
千単位の区切り文字で区切ることができるゼロ個以上の数字、オプションで小数点文字、およびゼロ個以上の数字で構成されます。 NULL番号はこのように扱われます0
。ロケールは、LC_NUMERIC
小数点文字と千単位の区切り文字を指定します。デフォルトでは、スペースはスペースまたはタブ文字ですが、LC_CTYPE
地域設定に応じて変更できます。比較的正確です。丸めエラーはありません。