Trouver le nombre de répertoires commençant par un numéro

Nombre de sous-répertoires dans un répertoire? , J’essaie maintenant de ne prendre en compte que les répertoires qui commencent par un numéro.

Par exemple, si je fais:

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

pour:

foo_dir / 18740802-Parthenon.dat.bz2

foo_dir / 98740802-Whitby Abbey.dat.bz2

foo_dir / photos_collect.bz2

Je vais obtenir 3 comme résultat. Comment filtrer ce répertoire pour obtenir 2 (idée: vérifiez si la première lettre de l’élément est 1-9)?

Je voudrais essayer quelque chose comme ça:

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

Regex Explication:

/ est le séparateur de répertoire sur les systèmes Linux.
[0-9] correspond à n’importe quel chiffre.
[^/]* correspond à zéro ou plusieurs caractères qui ne sont pas des séparateurs de répertoires.
$ correspond à la fin d’une ligne.

Par conséquent, nous faisons correspondre tout répertoire ou fichier commençant par un chiffre et la dernière entrée du chemin de fichier.


PS: l’ argument -c de grep fait que grep imprime le nombre de lignes correspondantes.