根据 hdfs 目录中的文件名计算文件数
Posted
技术标签:
【中文标题】根据 hdfs 目录中的文件名计算文件数【英文标题】:count number of files on basis of filename in hdfs directory 【发布时间】:2019-03-15 21:32:17 【问题描述】:我有一个 HDFS 目录,其中包含一千多条记录,并且包含不同的文件名。我必须根据文件名计算文件。 由于我有数千个文件,我无法给出具体的文件名来计数。
例如目录包含以下文件
/a/b/a.txt
/a/b/b.txt
/a/b/c.txt
/a/b/a.txt
/a/b/b.txt
/a/b/c.txt
结果应该是
a.txt 2
b.txt 2
c.txt 2
【问题讨论】:
我认为文件夹中不可能有相同的文件名。 你是说a/a/a.txt
, a/b/a.txt
, ...?
【参考方案1】:
这绝不是一个有效的解决方案,但如果你只是想快速编写脚本,它会做:
find . -exec basename \; | sort | uniq -c | sort
解释:
找到当前目录中的所有文件,并打印它们的basename(只是文件名,删除父目录)。要更改搜索的根,请指定路径而不是.
排序列表按字母顺序(这是下一步工作所必需的)
count 每个项目(uniq
的 -c 标志计算每次出现的次数)
对该列表进行排序以按升序查看。
在我的系统上,这给出了一些看起来像
... removed some output for clarity ...
2 CMakeLists.txt
2 heads
2 hello
2 info
2 origin
2 refs
2 remotes
2 test
2 test.cpp
4 .gitignore
4 HEAD
4 master
5 Makefile
【讨论】:
我做错了什么...更正了...感谢您的帮助。以上是关于根据 hdfs 目录中的文件名计算文件数的主要内容,如果未能解决你的问题,请参考以下文章