[unix] 열별로 출력 정렬
이 명령을 받고 싶습니다 find -maxdepth 1 -type d | while read -r dir; do printf "%s:\t" "$dir"; find "$dir" | wc -l; done
( here ). 기본적으로 출력이
./kennel: 11062
./shadow: 15449
./ccc: 9765
./journeyo: 14200
./norths: 10710
가장 큰 숫자부터 가장 작은 숫자로 정렬하십시오. 하지만 만드는 방법 sort
또는 다른 열에서 작동 하는 방법을 잘 모르겠습니다 .
답변
를 통해 라인을 파이프합니다 sort -n -r -k2
. 가장 큰 것부터 가장 작은 것까지 정렬하도록 편집했습니다.
답변
한 가지 옵션은 열을 뒤집는 것입니다.
$ 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}'
필요에 따라 열을 뒤집는 것과 같은 방식으로 파이프 할 수도 있습니다.