2016-09-08 1 views
1

Следующее Number of subdirectories in a directory?, теперь я пытаюсь учесть только каталоги, начинающиеся с числа.Найти количество каталогов, начинающихся с цифры

Например, если я делаю:

hadoop fs -ls -R foo_dir | grep "^d" | wc -l 

для:

foo_dir/18740802-Parthenon.dat.bz2

foo_dir/98740802-Уитби Abbey.dat.bz2

foo_dir/photos_collect.bz2

Я получу 3 результат. Как отфильтровать этот каталог, чтобы получить 2 (идея: проверьте, если первая буква элемента 1-9)?

+0

Да, у меня есть все права на все @ JefréN.! – gsamaras

+0

Хороший вопрос @ JefréN., Потому что я применил ваш ответ в каталоге игрушек, который я создал локально, и это сработало. Да, команда выполняется из шлюза в совершенно другой каталог! Как '/ some_dir/foo_dir' – gsamaras

+0

Дал объяснения. –

ответ

3

Я хотел бы попробовать что-то вроде этого:

... ls -R foo_dir | grep "/[0-9][^/]*$" -c 

Regex Объяснение:

/ является каталог Сепаратор на системах Linux.
[0-9] соответствует любой цифре.
[^/]* соответствует ноль или более символов не каталог разделителей.
$ соответствует концу строки.

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


PS:-c arguement в grep причины Grep печатать количество совпадающих строк.