查找以数字开头的目录数
Find number of directories that start with a number
继 之后,我现在尝试只考虑以数字开头的目录。
例如,如果我这样做:
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)?
我会尝试这样的事情:
... ls -R foo_dir | grep "/[0-9][^/]*$" -c
正则表达式解释:
/
是 linux 系统上的目录分隔符。
[0-9]
匹配任何数字。
[^/]*
匹配零个或多个 不是 目录分隔符的字符。
$
匹配行尾。
因此,我们匹配任何以数字开头并且是文件路径中最后条目的目录或文件。
PS: -c
对 grep
的争论导致 grep 打印匹配行数。
继
例如,如果我这样做:
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)?
我会尝试这样的事情:
... ls -R foo_dir | grep "/[0-9][^/]*$" -c
正则表达式解释:
/
是 linux 系统上的目录分隔符。
[0-9]
匹配任何数字。
[^/]*
匹配零个或多个 不是 目录分隔符的字符。
$
匹配行尾。
因此,我们匹配任何以数字开头并且是文件路径中最后条目的目录或文件。
PS: -c
对 grep
的争论导致 grep 打印匹配行数。