Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 查找以数字开头的目录数_Linux_Unix_Hadoop_Terminal_Filesystems - Fatal编程技术网

Linux 查找以数字开头的目录数

Linux 查找以数字开头的目录数,linux,unix,hadoop,terminal,filesystems,Linux,Unix,Hadoop,Terminal,Filesystems,接下来,我现在尝试只考虑以数字开头的目录 例如,如果我这样做: hadoop fs -ls -R foo_dir | grep "^d" | wc -l 用于: foo_dir/18740802-pathenon.dat.bz2 foo_dir/98740802 Whitby Abbey.dat.bz2 foo_dir/photos_collect.bz2 结果我会得到3分。如何筛选该目录以获得2(想法:检查项目的第一个字母是否为1-9)?我会尝试以下方法: ... ls

接下来,我现在尝试只考虑以数字开头的目录

例如,如果我这样做:

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

foo_dir/18740802-pathenon.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:指向
grep
-c
参数导致grep打印匹配行数。

是的,我对@JefréN的所有内容都拥有完全的权限。!问得好@JefréN.,因为我确实在本地创建的玩具目录中应用了您的答案,并且成功了。是的,该命令从网关执行到一个完全不同的目录!比如
/some_dir/foo_dir
给出了解释。谢谢@JefréN,你就是炸弹,没有你不可能做到!干杯谢谢#快速膨胀:D