2015-12-05 50 views
2

我們用iostat記錄我們的磁盤陣列,現在有一個2 MB的文本文件。 是否可以讀取文件內容,並用php或bash以某種方式對所有事件進行排序?如何用php或bash讀取文本文件並對其進行排序?

我們也有shell訪問,所以如果你是一個指揮大師,那也是一種可能。

我們想閱讀和排序在文本文件中的以下信息,上升,由下面的一些r/sw/skr/skw/sqlensvc_t%b值。

可能,還是太難?

     extended device statistics 
device  r/s w/s kr/s kw/s qlen svc_t %b 
da0  11.5 14.0 701.8 530.1 0 7.3 11 
         extended device statistics 
device  r/s w/s kr/s kw/s qlen svc_t %b 
da0  0.0 0.0  0.0  0.0 1 0.0 0 
         extended device statistics 
device  r/s w/s kr/s kw/s qlen svc_t %b 
da0  0.0 10.5  0.0 350.8 0 139.2 145 
+0

如果文本文件增長,排序將過於昂貴和緩慢。我認爲你應該使用SQLITE或MySql.If你想使用txt日誌文件,我不知道bash,但python可以幫助很多。你需要地圖。 – alirakiyan

回答

3

嘗試使用此方法列3( 「W/S」)進行排序:

(echo 'device r/s w/s kr/s kw/s qlen svc_t %b'; grep '[0-9]' file | sed 's/ \+/ /g' | sort -n -k 3,3) | column -t 

或該排序列7( 「中svc_t」):

(echo 'device r/s w/s kr/s kw/s qlen svc_t %b'; grep '[0-9]' file | sed 's/ \+/ /g' | sort -n -k 7,7) | column -t 

輸出與-k 7,7

 
device r/s w/s kr/s kw/s qlen svc_t %b 
da0  0.0 0.0 0.0 0.0 1  0.0 0 
da0  11.5 14.0 701.8 530.1 0  7.3 11 
da0  0.0 10.5 0.0 350.8 0  139.2 145 

With awkprintf可以將柱對齊。

+0

絕對令人驚歎,這甚至是可能的。一個巨大的坦克@Cyrus! – Alldo

相關問題