关注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)?
答案 0 :(得分:3)
我会尝试这样的事情:
... ls -R foo_dir | grep "/[0-9][^/]*$" -c
正则表达式说明:
/
是linux系统上的目录分隔符
[0-9]
匹配任何数字。
[^/]*
匹配零个或多个不目录分隔符的字符
$
匹配一行的结尾。
因此,我们匹配任何以数字开头的目录或文件,并且是文件路径中的最后条目。
PS: -c
对grep
的争论导致grep打印匹配行数。