查找以数字开头的目录数

时间:2016-09-08 22:28:55

标签: linux unix hadoop terminal filesystems

关注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-Whitby Abbey.dat.bz2

     

foo_dir / photos_collect.bz2

我将得到3作为结果。如何过滤该目录以获得2(想法:检查项目的第一个字母是否为1-9)?

1 个答案:

答案 0 :(得分:3)

我会尝试这样的事情:

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

正则表达式说明:

/是linux系统上的目录分隔符 [0-9]匹配任何数字。
[^/]*匹配零个或多个目录分隔符的字符 $匹配一行的结尾。

因此,我们匹配任何以数字开头的目录或文件,并且是文件路径中的最后条目。

PS: -cgrep的争论导致grep打印匹配行数。