【发布时间】:2014-06-30 03:57:34
【问题描述】:
我不是 linux 脚本专家,我知道我可以通过一些编程来做到这一点,但我只是想通过一些命令行或简单的脚本来轻松地做到这一点。任何帮助将不胜感激。
我有一个 csv 文件,包含以下几行
Date,Time,Global_active_power,Global_reactive_power,Voltage,Global_intensity,Sub_metering_1,Sub_metering_2,Sub_metering_3
16/12/2006,18:00:00,2.79,0.18,237.52,11.8,0,0,18
16/12/2006,18:01:00,2.624,0.144,238.2,11,0,0,17
16/12/2006,18:02:00,2.772,0.118,238.28,11.6,0,0,17
16/12/2006,18:03:00,3.74,0.108,236.93,16.4,0,16,18
16/12/2006,18:04:00,4.928,0.202,235.01,21,0,37,16
16/12/2006,18:05:00,6.052,0.192,232.93,26.2,0,37,17
16/12/2006,18:06:00,6.752,0.186,232.12,29,0,36,17
16/12/2006,18:07:00,6.474,0.144,231.85,27.8,0,37,16
16/12/2006,18:08:00,6.308,0.116,232.25,27,0,36,17
16/12/2006,18:09:00,4.464,0.136,234.66,19,0,37,16
16/12/2006,18:10:00,3.396,0.148,236.2,15,0,22,18
16/12/2006,18:11:00,3.09,0.152,237.07,13.8,0,12,17
16/12/2006,18:12:00,3.73,0.144,235.78,16.4,0,27,17
16/12/2006,18:13:00,2.308,0.16,237.43,9.6,0,1,17
16/12/2006,18:14:00,2.388,0.158,237.26,10,0,1,17
16/12/2006,18:15:00,4.598,0.1,234.25,21.4,0,20,17
16/12/2006,18:16:00,4.524,0.076,234.2,19.6,0,9,17
16/12/2006,18:17:00,4.202,0.082,234.31,17.8,0,1,17
16/12/2006,18:18:00,4.472,0,233.29,19.2,0,1,16
16/12/2006,18:19:00,2.852,0,235.61,12,0,1,17
16/12/2006,18:20:00,2.928,0,235.25,12.4,0,1,17
16/12/2006,18:21:00,2.94,0,236.04,12.4,0,2,17
16/12/2006,18:22:00,2.934,0,235.51,12.4,0,1,17
16/12/2006,18:23:00,2.926,0,235.68,12.4,0,1,17
16/12/2006,18:24:00,3.452,0,235.2,15.2,0,1,17
如上所示,第二个字段是一天中的时间,具有 hh:mm:ss(精确到分钟)。显然,数据记录是每分钟在这里创建的。我想创建脚本来执行以下操作:
- 对于日期字段(第一个字段),给出两个日期:开始日期“SDate”和结束日期“EDate”
- 对于时间字段(第二个字段),给出两个小时:开始时间“SHour”和结束时间“Ehour”
- 脚本会生成5个新的数据文件:
- 第一个文件将包含所有具有分钟的记录:00、05、10、15、20 ... 00
- 第二个文件将包含所有具有分钟的记录:01、06、11、16、21 ... 01
- 第三个文件将包含所有具有分钟的记录:02、07、12、17、22 ... 02
- 第四个文件将包含所有具有分钟的记录:03、08、13、18、23 ... 02
- 第五个文件将包含所有具有分钟的记录:04、09、14、19、24 ... 02
【问题讨论】: