it-swarm-ja.tech

列で出力をソートする

このコマンドを実行したい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、または別の列で動作するものを作成する方法がわかりません。

13
xenoterracide

sort -n -r -k2を介してラインをパイプします。最大から最小にソートするように編集されました。

27
W_Whalley

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}'のようなものにパイプして、必要に応じて列を元に戻すこともできます

3
Michael Mrozek