2015-12-05 48 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

相关问题