Как прочитать текстовый файл с помощью php или bash и отсортировать его?

Мы записали наш дисковый массив в iostat, и теперь у нас есть текстовый файл размером 2 Мб.
Можно ли прочитать содержимое файла и каким-то образом отсортировать все вхождения с помощью php или bash?

У нас также есть доступ к оболочке, так что если вы командир-гуру, это тоже возможно.

Мы хотим прочитать и отсортировать следующую информацию в текстовом файле, по возрастанию, по некоторым из следующих r/s, w/s, kr/s, kw/s, qlen, svc_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

2

Решение

Попробуйте отсортировать столбец 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:

устройство 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

С awk или же printf возможно выровнять столбцы правильно.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]