列で出力を並べ替える


13

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

回答:


27

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


それを試してみて、問題なく動作します
Gert

3

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}'、必要な順序で列を反転させるようなものにパイプすることもできます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.