2014-09-24 72 views
1

隨着大量的幫助下我已經成功地從rebootlogfile.log得到一個圖表裏使用以下加入條件的gnuplot的awk腳本

command.gpl腳本的圖形社區

set terminal png size 2000,600 
    set output '/usr/src/scripts/plots/core_temp_data/output.png' 


    set size ratio 0.4 
    set xdata time 
    set timefmt "%H:%M:%S" 

    plot "<awk '{print $4, substr($0,match($0,/temp=[0-9.]+/)+5,RLENGTH-5)}' /var/log/rebootlogfile.log" using 1:2 with lines 

我運行使用

gnuplot /usr/src/scripts/plots/core_temp_data/command.gpl 

從外殼腳本,給了我 enter image description here

的數據是一個巨大的文件,它看起來像以下,但有更多的線路多天不只是坐在印在這裏:

Sat Sep 20 18:10:02 BST 2014 -- temp=57.3'C -- message from script /usr/src/scripts/wifi_test_2.sh 
Sat Sep 20 18:11:01 BST 2014 -- temp=57.3'C -- message from script /usr/src/scripts/wifi_test_2.sh 
Sat Sep 20 18:12:01 BST 2014 -- temp=57.8'C -- message from script /usr/src/scripts/wifi_test_2.sh 
Sat Sep 20 18:13:01 BST 2014 -- temp=57.3'C -- message from script /usr/src/scripts/wifi_test_2.sh 
Sat Sep 20 18:14:02 BST 2014 -- temp=58.4'C -- message from script /usr/src/scripts/wifi_test_2.sh 
Sat Sep 20 18:15:01 BST 2014 -- temp=57.8'C -- message from script /usr/src/scripts/wifi_test_2.sh 
Sat Sep 20 18:16:01 BST 2014 -- temp=57.3'C -- message from script /usr/src/scripts/wifi_test_2.sh 
Sat Sep 20 18:16:02 BST 2014 -- WiFi seems stuck, rebooting - message from script /usr/src/scripts/wifi_test_2.sh 
Sat Sep 20 18:17:18 BST 2014 -- temp=57.3'C -- message from script /usr/src/scripts/wifi_test_2.sh 
Sat Sep 20 18:18:02 BST 2014 -- temp=58.4'C -- message from script /usr/src/scripts/wifi_test_2.sh 
Sat Sep 20 18:19:01 BST 2014 -- temp=58.4'C -- message from script /usr/src/scripts/wifi_test_2.sh 
Sat Sep 20 18:20:01 BST 2014 -- temp=58.9'C -- message from script /usr/src/scripts/wifi_test_2.sh 
  1. 如何修改awk命令只打印說出「太陽」?我已經去修改if語句問題1 here,但是我得到語法錯誤。

  2. 我怎樣才能在第三列零或黑線,或者說,以確定「無線網絡連接似乎陷入」陰謀

  3. 這是我從後拍攝(週一22 24個小時)是對數據的電子表格圖表:

  4. 我在想是這樣的:

    plot "<awk 'if ($1 == 'Sat') {print $4, substr($0,match($0,/temp=[0-9.]+/)+5,RLENGTH-5)}' /var/log/rebootlogfile.log" using 1:2 with points

    但是當我運行它時,我得到了x range is invalid

回答

0

感謝andyras指出我正確的方向。我試圖grep一個不是從awk命令輸出的列。經過進一步搜索,我偶然發現了conditions in awk和賓果!這個命令奏效!

plot "<awk '/Mon/ {print $4, substr($0,match($0,/temp=[0-9.]+/)+5,RLENGTH-5)}' /var/log/rebootlogfile.log" using 1:2 with points

enter image description here

1

你可以管添加到grep爲 「太陽報」:

plot '< (awk stuff) | grep "^Sun"' using 1:2 ... 

^一行的開頭匹配。

+0

**情節「 reggie 2014-09-24 14:53:12

+0

也許 - grepping那個模式可以處理single和在我的系統上使用雙引號(Mac OS X)。當你在命令行上而不是通過gnuplot運行該命令時會發生什麼?「不起作用」不是很具描述性,最好是顯示它是如何失敗的。 – andyras 2014-09-24 15:10:52

+0

對不起缺少錯誤信息:**第17行:警告:跳過沒有有效點的數據文件**和**第17行:xr當我嘗試運行整件事時,憤怒是無效的**;並且在命令行中沒有任何事情發生,它只是不會返回到提示符。 – reggie 2014-09-24 18:13:55