2013-04-10 51 views
1

我有幾個文件,其中26列用逗號分隔。有幾百行。每行在第三列中都有一個時間戳記。我希望在下午6點時間戳之後的所有文件中以列的形式平均,並將平均數據複製到新文件中。其中兩行顯示如下。日期和時間用空格分開。我可以使用AWK進行平均,這是下午6點以後的開始,讓我感到困惑。在特定時間戳後啓動數據歸類

任何幫助表示讚賞。

1,0102,3/1/2013 3:44:50 PM ,3586,20.88,20.51,0.36,0.0,2777,0.083,0.377,0.294,0.0,0.775,0.6,0.60,STABLE,0.01,0.01,0.812,0.812,989,713,755,553,799, 
2,0102,3/1/2013 3:59:50 PM ,2727,20.91,20.63,0.28,0.0,2215,0.067,0.302,0.234,0.0,0.812,0.5,0.60,STABLE,0.05,0.06,0.000,0.812,2385,1713,1810,1270,1910, 
+0

你在用什麼? – 2013-04-10 22:24:34

+0

我是新手腳本。原始文件(.CSV)由在72小時內收集小鼠新陳代謝數據的儀器生成。我按組對數據進行平均,然後將平均數據導入可視化/統計軟件以測試這些組之間的差異。在過去,我會複製和粘貼原始文件到Excel中,並進行平均,這是一種笨重的方式來做到這一點。我發現AWK有一件看起來應該做的工作。但是我需要在相似的時間開始平均數據,否則我會引入太多的噪音來「看」幾乎沒有什麼區別。對不起,羅嗦ans – 2013-04-11 00:16:02

回答

0

是這樣的嗎?

BEGIN { 
FS=","; 
ok=0 
} 

$3~/[6,7,8,9,10,11]:[0-9]+:[0-9]+ PM/ { ok=1 } 

ok==1 { print } 
+0

謝謝你。這工作,但不幸的是只打印下午6點後開始的PM數據。我真的需要awk在下午6點之後查找第一次出現,然後打印整個文件。這些文件是在72小時內收集的數據。有什麼建議麼? – 2013-04-15 18:18:36

+0

我已經改變了腳本,以便awk讀取多個文件並將結果存儲在一個新文件中'test'awk -F「\,''$ 3〜/ [6,7,8,9,10,11]: [0-9] +:[0-9] + PM/{print}'* .CSV> test – 2013-04-15 18:24:08

+0

您可以用一個可變開關替換「print」,如: BEGIN {FS =「,」; OK = 0} $ 3〜/ [6,7,8,9,10,11]:[0-9] +:[0-9] + PM/{ok = 1} ok == 1 {print} – 2013-04-17 09:13:26

相關問題