Awk 在特定时间戳之后启动数据排序

Awk 在特定时间戳之后启动数据排序,awk,timestamp,Awk,Timestamp,我有几个文件,26列用逗号分隔。有几百排。每行在第三列中都有一个时间戳。我想在下午6点时间戳之后开始的所有文件中平均like列,并将平均数据复制到一个新文件中。其中两行如下所示。日期和时间之间用空格隔开。我可以用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

我有几个文件,26列用逗号分隔。有几百排。每行在第三列中都有一个时间戳。我想在下午6点时间戳之后开始的所有文件中平均like列,并将平均数据复制到一个新文件中。其中两行如下所示。日期和时间之间用空格隔开。我可以用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,
像这样的

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

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

ok==1 { print }

你用什么来做这个?我不太会写脚本。原始文件.CSV由一台仪器生成,该仪器在72小时内收集小鼠的代谢数据。我按组平均数据,然后将平均数据导入可视化/统计软件,以测试这些组之间的差异。过去,我会将原始文件复制粘贴到Excel中,然后进行平均,这是一种笨拙的方法。我已经找到了一个AWK的一行,看起来它应该做的工作。但我需要对相似时间开始的数据取平均值,否则我会引入太多的噪声,看不出有什么差别。对不起,我的回答太多了,谢谢你。这是可行的,但不幸的是,仅打印下午6点后开始的PM数据。我真的需要awk在下午6点后查找第一个事件,然后打印整个文件。这些文件是在72小时内收集的数据。有什么建议吗?我对脚本做了一些修改,让awk读取多个文件并将结果存储在一个新文件“test”awk-F\,“$3~/[6,7,8,9,10,11]:[0-9]+:[0-9]+PM/{print}*.CSV>test您可以用变量开关替换print,比如:BEGIN{FS=,;ok=0}$3~/[6,7,8,9,10,11]:[0-9]+:[0-9]+PM ok=1}ok==1]{print}这很好。非常感谢!!为了让我能从中学习,你能解释一下ok=0、ok=1和ok=1在做什么吗?首先你设置变量ok=0开始,然后当你找到第一个模式匹配时,你设置ok=1第二行,因此最后一个模式只检查变量ok是0还是1,如果是1,它会打印整行。。。