2013-04-10 25 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

相关问题