我有一個像下面這樣的Linux系統的日常文件輸出,並且想知道是否有一種方法可以按照$ 1和平均$ 3以及$ 4 $ 5 $ 6 $ 7以30分鐘的增量對數據進行分組通過使用awk/gawk或類似的東西的shell腳本$ 8?bash組時間和平均值+ sum列
04:04:13 04:10:13 2.13 36 27 18 18 0
04:09:13 04:15:13 2.37 47 38 13 34 0
04:14:13 04:20:13 2.19 57 37 23 33 1
04:19:13 04:25:13 2.43 43 35 13 30 0
04:24:13 04:30:13 2.29 48 40 19 28 1
04:29:13 04:35:13 2.33 56 42 16 40 0
04:34:13 04:40:13 2.21 62 47 30 32 0
04:39:13 04:45:13 2.25 44 41 19 25 0
04:44:13 04:50:13 2.20 65 50 32 33 0
04:49:13 04:55:13 2.47 52 38 16 36 0
04:54:13 05:00:13 2.07 72 54 40 32 0
04:59:13 05:05:13 2.35 53 41 19 34 0
所以基本上這個時候數據會導致這樣的事情:
04:04:13-04:29:13 2.29 287 219 102 183 2
04:34:13-04:59:13 2.25 348 271 156 192 0
這是我迄今爲止得到用awk的時間幀之間進行搜索,但我認爲還有一個更簡單得到的分組不awking每30分鐘間隔
awk '$1>=from&&$1<=to' from="04:00:00" to="04:30:00" | awk '{ total += $3; count++ } END { print total/count }'|awk '{printf "%0.2f\n", $1'}
awk '$1>=from&&$1<=to' from="04:00:00" to="04:30:00" | awk '{ sum+=$4} END {print sum}'
那麼你嘗試過這麼遠嗎? –
我能夠使用awk單獨獲取硬編碼時間範圍的值,但這是我得到的。我已經更新了我的主線程,以我目前爲止的 – user1999357
,您可以首先從時間中提取分鐘數,例如使用以下代碼:'time = $ 1; min = substr(time,4,2);',用小時和秒錶示,然後寫出比較測試。 –