Bash 使用“查找”按日期统计文件

Bash 使用“查找”按日期统计文件,bash,Bash,我正在按日期对文件进行计数。日期是文件名本身的一个字段,例如 CTCA~AT2~FVT~8388358~ONTAFT2-1~8~P~1100~HR24-500~033189784938~20120224~220306.VER 这就是我所做的: find . -name '*VER' |awk -F~ '{print $11}'|uniq -c 这是我得到的输出: 1 20120222 3 20120222 3 20120224 3 20120224 3 20120225

我正在按日期对文件进行计数。日期是文件名本身的一个字段,例如

CTCA~AT2~FVT~8388358~ONTAFT2-1~8~P~1100~HR24-500~033189784938~20120224~220306.VER
这就是我所做的:

find . -name '*VER' |awk -F~ '{print $11}'|uniq -c
这是我得到的输出:

  1 20120222
  3 20120222
  3 20120224
  3 20120224
  3 20120225
  5 20120225
但我想这样总结一下

  4 20120222
  6 20120224
  8 20120225
我该怎么做

/--------------------------------------/

使用

find . -name '*VER' 
返回

...
./CTCA~AT2~FVT~8388358~ONTAFT2-1~7~P~1100~HR24-200~035699170847~20120217~150754.VER
./CTCA~AT2~FVT~8388358~ONTAFT2-1~8~P~1100~HR24-500~033066015695~20120223~204125.VER
./CTCA~AT2~FVT~7561825~ONTAFT2-1~4~P~1100~HR24-100~035688466560~20120223~085805.VER
./CTCA~AT2~FVT~9078749~ONTAFT2-1~4~P~1100~HR24-200~035580595029~20120209~110625.VER
./CTCA~AT2~FVT~7561825~ONTAFT2-1~5~P~1100~HR22-100~028933090384~20120223~104932.VER
...

这正是
uniq-c
应该做的。如果它不起作用,那是因为您的输入没有排序。试试这个:

find . -name '*VER' |awk -F~ '{print $11}'|sort|uniq -c

下面是我的解决方案,它跳过uniq命令:

find ... | awk -F~ '{count[$11]++} END{for (d in count) {print count[d], d}}

该策略是创建一个名为count的数组,使用日期作为索引。最后,将它们打印出来。

您能提供查找结果吗-名称“*VER”?或者是一个合理的子集?我想我已经快弄明白了…哈哈。接受并投票通过。非常感谢。