我正在尝试按日期计算文件数。日期是文件名中的一个字段,例如
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
...
答案 0 :(得分:4)
这正是uniq -c
应该做的。如果它不起作用,那是因为你的输入没有排序。试试这个:
find . -name '*VER' |awk -F~ '{print $11}'|sort|uniq -c
答案 1 :(得分:1)
这是我的解决方案,它跳过uniq命令:
find ... | awk -F~ '{count[$11]++} END{for (d in count) {print count[d], d}}
策略是使用日期作为索引创建一个名为 count 的数组。最后,打印出来。