根据hdfs目录中的文件名计算文件数

时间:2019-03-15 21:32:18

标签: bash shell apache-spark-sql hdfs

我有一个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

1 个答案:

答案 0 :(得分:0)

这绝不是一个有效的解决方案,但是如果您只想快速编写一些脚本,它将这样做:

find . -exec basename {} \; | sort | uniq -c | sort

说明:

  • 查找当前目录中的所有文件,并打印其基本名称(只是文件名,删除父目录)。要更改搜索的根,请指定路径而不是.
  • 列表按字母顺序排序(这是下一步工作所必需的)
  • 计数每一项({{1}的-c标志计数每次出现的次数)
  • 对该列表进行排序以按升序查看。

在我的系统上,这看起来像

uniq