сортувати вихід за стовпцем


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. Відредаговано для сортування від найбільшого до найменшого.


Спробував це і працює бездоганно
Герт

3

Один варіант - перевернути стовпці:

$ 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}'передати відсортований результат через щось на зразок, щоб повернути стовпчики назад, якщо вони вам потрібні в такому порядку

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.