LINUX.ORG.RU

# str="a/b/c/d/e"
# x=${str//[!\/]/}
# echo ${#x}
4
Spoofing ★★★★★
()

ой, тебе каталоги, а я воспринял это как подсчитать количество эцсамых в строке. тупой спуфинг. сейчас, исправлюсь.

Spoofing ★★★★★
()

sed -r 's,[^/]+/,,' |wc -l

anonymous
()

Ну, если нужные каталоги — пустые, можно

find -type d -empty -printf x | wc -m

Если нет:

find -type d -exec bash -c 'shopt -s nullglob; declare -i count=0; for dir; do subdirs=( "$dir"/*/ ); (( ${#subdirs} )) || (( ++count )); done; echo "$count"' _ {} +
(ничего не выведет, если таких каталогов нет; можно сделать n=$(…); n=${n:-0})

shdown
()

Посчитать кол-во подкаталогов на максимальной глубине

awk -F '/' '{print NF}'

поиск максимального значения средствами awk — твое дом задание

если не осилишь, бери sort -rn | head -1

anonymous
()

Вот так даже интересней:

$ find -type d -printf '%d %p\n' | sort -r -n -t ' ' -k 1,1 | awk '{ if (max=="") max=$1 ; if ($1==max) print $0 ; }'
Если в конце поставить | wc -l - получишь количество директорий. А в таком виде - их список.

Kroz ★★★★★
()
find -type d | tr -d -C '/\n' | sort | uniq -c | tail -n 1 | awk '{ print $1 }'
tiandrey ★★★★★
()
Последнее исправление: tiandrey (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.