我想接受这个命令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
将管线穿过sort -n -r -k2
.编辑为从大到小排序。
答案2
一种选择是翻转列:
$ 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}'
如果您需要按顺序翻转列,您甚至可以通过管道传输排序结果