Нахождение количества конкретных файлов с помощью bash - PullRequest
0 голосов
/ 04 октября 2018

Заполните точки в следующей команде Unix, например, стандартный вывод дает обзор по типам файлов с количеством файлов в каталоге / dev.В этом обзоре все типы файлов должны быть перечислены в порядке убывания количества найденных файлов определенного типа.Если существуют типы файлов с равным количеством файлов, они должны быть перечислены в алфавитном порядке.

$ find /dev -ls | …
  7 c
  6 l
  3 d

Советы:

Часть, уже заданная командой find, также находит скрытые файлыв каталоге.

С помощью команды cut вы можете выбрать определенную часть строки, двумя наиболее важными параметрами являются -f и -d.Первый разбивает строки в столбцах.По умолчанию используется символ табуляции.С опцией -d вы можете указать пользовательский разделитель.

tr, сортировка и uniq могут быть полезны.

Что у меня есть:

find /dev -ls | tr \\t " " | tr -s " " | cut -f3 -d ' ' | cut -c-1 | sort | uniq -c | sort -r

Но этоне похоже на работу ...

Заранее спасибо.

1 Ответ

0 голосов
/ 04 октября 2018

Мне нравится использовать awk для этих случаев вместо tr

 find /dev -ls | gawk '{ c=substr($3,1,1) ; x[c]++ } END { for(y in x) print x[y] " " y }' | sort -n
...