Как получить список всех файлов в директории, сгруппированных по расширению и вычислить средний размер файлов в каждой группе

ls -r | ?{-not $_.psiscontainer} | group extension | select name, count, @{n='average'; e={($_.group | measure -a length).average}} | ft -a @{n='Extension'; e={$_.name}}, count, @{n='Average Size (KB)'; e={$_.average/1kb}; f='{0:N2}'}


Команда ls -r используется для рекурсивного отображения списка файлов и папок в указанной директории и всех ее поддиректориях.

Символ | (труба) используется для перенаправления вывода команды слева к следующей команде справа.

Фрагмент ?{-not $_.psiscontainer} используется для фильтрации списка файлов, чтобы исключить директории.

Команда group extension группирует файлы по расширению.

select name, count, @{n='average'; e={($_.group | measure -a length).average}} отбирает имя расширения, количество файлов в группе и вычисляет средний размер файлов в каждой группе.

ft -a @{n='Extension'; e={$_.name}}, count, @{n='Average Size (KB)'; e={$_.average/1kb}; f='{0:N2}'} форматирует вывод таблицей, отображая расширение, количество файлов и средний размер. Размер конвертируется в килобайты и отображается с двумя знаками после запятой.

Альтернативой данной команде может быть использование Get-ChildItem вместо ls, а затем использование других команд или скриптов для группировки и вычисления среднего размера файлов.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *