Вывод результатов команды du в алфавитном порядке

Как я могу перечислить результаты du команда в алфавитном порядке?

Я знаю, что могу использовать find команда, чтобы перечислить их в алфавитном порядке, но без размера каталога, я также использую -maxdepth опция для обеих команд, чтобы листинг шел только в один подкаталог.

Вот вопрос курсивом:

Напишите сценарий оболочки, который реализует анализатор размера каталога. В вашем скрипте вы можете использовать общие команды Linux. Сценарий должен перечислить дисковое хранилище, занимаемое каждым непосредственным подкаталогом данного аргумента или текущим каталогом (если аргумент не указан) с именами подкаталогов, отсортированными в алфавитном порядке. Кроме того, укажите имя подкаталога с наибольшим использованием диска вместе с его размером хранилища. Если более одного подкаталога имеют одинаковое наибольшее использование диска, перечислите любой из этих подкаталогов. Включить содержательные краткие комментарии. Список команд bash, применимых к этому сценарию, включает следующее, но не ограничивается: cat, cut, du, echo, exit, for, head, if, ls, rm, sort, tail, wc. Вы можете использовать переменные bash, а также временные файлы для хранения промежуточных результатов. Удалите все временные файлы в конце выполнения.

Вот мой результат после ввода du $dir -hk --max-depth=2 | sort -o temp1.txt затем cat temp1.txt в командной строке:

12      ./IT_PLAN/Inter_Disciplinary
28      ./IT_PLAN
3       ./IT_PLAN/Core_Courses
3       ./IT_PLAN/Pre_reqs
81      .
9       ./IT_PLAN/IT_Electives

Это должно выглядеть так:

28      ./IT_PLAN
3       ./IT_PLAN/Core_Courses
12      ./IT_PLAN/Inter_Disciplinary
9       ./IT_PLAN/IT_Electives
The subdirectory with the maximum disk space use:
28      ./IT_PLAN

Еще раз, у меня проблемы с сортировкой результатов по алфавиту.

2 ответа

Решение

Попробуйте сделать это:

du $dir -hk --max-depth=2 | sort -k2

-k2 это столбец № 2

Смотрите http://www.manpagez.com/man/1/sort/

du $dir -hk --max-depth=2 |awk '{print $2"\t"$1}'|sort -d -k1 -o temp1.txt и если вы хотите удалить./ путь

 du $dir -hk --max-depth=2 |awk '{print $2"\t"$1}'|sed -e 's/\.\///g'|sort -d -k1 -o temp1.txt
Другие вопросы по тегам