列出文件夹中相似文件名的数量

问题描述 投票:0回答:1

我有一个文件夹,其中包含多个相似名称的文件(文件名中以日期时间区分)

我希望能够对该文件夹中的每个文件组/类型进行计数。

file1_25102019_111402.csv
file1_24102019_111502.csv
file1_23102019_121402.csv
file1_22102019_101402.csv

file2_25102019_161404.csv
file2_24102019_131205.csv
file2_23102019_121306.csv

我需要能够返回这样的内容;

file1 4
file2 3

理想情况下,答案将类似于“第一个x字符为ABCD的文件数”

没有什么我不知道如何开始

unix solaris
1个回答
0
投票

使用示例文件的命令

ls | sed 's/_[0-9]\{8\}_[0-9]\{6\}/_*/' | sort | uniq -c

打印

      3 file1_*.csv
      3 file2_*.csv

说明:

  • sed命令将_,8位数字,另一个_和另外6位数字的序列替换为_*。使用示例文件名,您将获得file1_*.csvfile2_*.csv每次3次。
  • [sort对行进行排序。
  • [uniq -c计数相等的后续行数。

如果您想比较前5个字符,也可以使用

ls | cut -c1-5 | sort | uniq -c

打印

      3 file1
      3 file2

或者,如果要从第一个_到结尾都剥离所有内容,则可以使用

ls | sed 's/_.*//' | sort | uniq -c

将输出与上面相同的输出。

© www.soinside.com 2019 - 2024. All rights reserved.