Bash 根据hdfs目录中的文件名统计文件数
我有一个HDFS目录,有超过1000条记录,其中包含不同的文件名。我必须根据文件名数数文件。 因为我有上千个文件,所以我不能给出具体的文件名 例如,目录包含以下文件 /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 2Bash 根据hdfs目录中的文件名统计文件数,bash,shell,apache-spark-sql,hdfs,Bash,Shell,Apache Spark Sql,Hdfs,我有一个HDFS目录,有超过1000条记录,其中包含不同的文件名。我必须根据文件名数数文件。 因为我有上千个文件,所以我不能给出具体的文件名 例如,目录包含以下文件 /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决不是一个有效的解决方案,但如果您只是想快速编写脚本,它可以: find . -exec basename {} \; | sort |
c、 txt 2决不是一个有效的解决方案,但如果您只是想快速编写脚本,它可以:
find . -exec basename {} \; | sort | uniq -c | sort
说明:
- 查找当前目录中的所有文件,并打印其基本名称(仅文件名,删除父目录)。要更改搜索的根目录,请指定路径,而不是
- 按字母顺序对列表排序(这是下一步工作所必需的)
- 计数每个项目(-c
统计每个事件)uniq的标志
- 按升序排列要查看的列表
... 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
我认为文件夹中不可能有相同的文件名。你是说
a/a/a.txt
,a/b/a.txt
,…?我做错了…更正了…谢谢你的帮助。