3

У меня есть 2 папки, которые имеют подпапки (названы в честь пользователей). Большинство имен подпапок существуют в обеих папках, но не во всех. Теперь я хочу создать список пространства, используемого каждым пользователем.

Я могу использовать следующую команду, чтобы получить список для каждой папки,

du -m --max-depth=1 | sort -nr

но я не знаю простой способ объединить два из этих списков. Не у всех пользователей есть папка в обоих местах, поэтому простая сортировка не работает. Любая идея о том, как суммировать размеры папок для каждого пользователя?

1 ответ1

3

Попробуйте это:

join -j 2 <(cd dir1; du -m --max-depth=1 | sort -k2,2) <(cd dir2; du -m --max-depth=1 | sort -k2,2) | awk '{print $2 + $3, $1}' | sort -nr

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

11 ./bob
9 ./jan
8 ./cheryl
3 ./mike

Вы можете изменить команду AWK, чтобы сделать вывод немного более привлекательным:

awk '{printf "%6s\t%s\n", $2 + $3, $1}'

который выровняет цифры по правому краю и сделает имена выровненными в столбце.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .