2012-02-28 62 views
2

我想按日期做文件的數量來算的文件。日期是文件名本身中的一個字段,例如使用找到日期

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

你能提供查找的結果。 -name'* VER'?還是一個明智的子集? – wreckgar23 2012-02-28 17:38:16

回答

4

這正是uniq -c應該做搜索。如果它沒有工作,這是因爲你的輸入沒有排序。試試這個:

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

我想我很接近想出來......大聲笑。接受並投票決定。謝謝!!! – Chris 2012-02-28 17:48:23

1

這裏是我的解決方案,它跳過uniq命令:

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

戰略是創建一個數組稱爲計數,使用日期爲指標。最後,將它們打印出來。