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”?或者是一个合理的子集?我想我已经快弄明白了…哈哈。接受并投票通过。非常感谢。