下面是目录中的子目录数?,我现在只考虑以数字开头的目录。例如,如果我这样做:
hadoop fs -ls -R foo_dir | grep "^d" | wc -l
用于:食品目录/18740802-pathenon.dat.bz2食品目录/98740802惠特比修道院.dat.bz2foo\ u dir/照片\u collect.bz2结果我会得到3分。如何过滤该目录以获得2(想法:检查项目的第一个字母是否为1-9)?
fcwjkofz1#
我会尝试这样的方法:
... ls -R foo_dir | grep "/[0-9][^/]*$" -c
正则表达式解释: / 是linux系统上的目录分隔符。 [0-9] 匹配任意数字。 [^/]* 匹配零个或多个不是目录分隔符的字符。 $ 与行尾匹配。因此,我们匹配任何以数字开头并且是文件路径中最后一个条目的目录或文件。附言:是的 -c 辩论 grep 使grep打印匹配行的数目。
/
[0-9]
[^/]*
$
-c
grep
1条答案
按热度按时间fcwjkofz1#
我会尝试这样的方法:
正则表达式解释:
/
是linux系统上的目录分隔符。[0-9]
匹配任意数字。[^/]*
匹配零个或多个不是目录分隔符的字符。$
与行尾匹配。因此,我们匹配任何以数字开头并且是文件路径中最后一个条目的目录或文件。
附言:是的
-c
辩论grep
使grep打印匹配行的数目。