質問: 列で出力をソートする このコマンドを実行したいfind -maxdepth 1 -type d | while read -r dir; do printf "%s:\t" "$dir"; find "$dir" | wc -l; done( ここから )。出力は基本的に./kennel: 11062 ./shadow: 15449 ./ccc: 9765 ./journeyo: 14200 ./norths: 10710 最大から最小の数値で並べ替えます。しかし、sort、または別の列で動作するものを作成する方法がわかりません。
回答: 1つのオプションは、列を反転することです。$ find -maxdepth 1 -type d | while read -r dir; do printf "%d\t%s\n" "`find "$dir" | wc -l`" "$dir"; done その後、次のような出力が得られます。17 . 1 ./acroread_1000_1002 1 ./.ice-unix 2 ./.x11-unix 1 ./orbit-mrozekma 2 ./ns.mrozekma.:0 これをsort -nrを介してパイプし、必要な方法で並べ替えることができます。並べ替えられた結果をawk -f'\t' '{print $2 "\t" $1}'のようなものにパイプして、必要に応じて列を元に戻すこともできます