如何读取带有 php 或 bash 的文本文件并对其进行排序?
How to read a text file with php or bash and sort it?
我们已经使用 iostat 记录了我们的磁盘阵列,现在有一个 2 MB 的文本文件。
是否可以使用 php 或 bash?
读取文件内容,并以某种方式对所有出现的内容进行排序
我们也有 shell 访问权限,所以如果您是指挥大师,那也是可能的。
我们要读取文本文件中的以下信息并按升序排序 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
尝试对第 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
使用 awk
或 printf
可以使列正确对齐。
我们已经使用 iostat 记录了我们的磁盘阵列,现在有一个 2 MB 的文本文件。 是否可以使用 php 或 bash?
读取文件内容,并以某种方式对所有出现的内容进行排序我们也有 shell 访问权限,所以如果您是指挥大师,那也是可能的。
我们要读取文本文件中的以下信息并按升序排序 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
尝试对第 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
使用 awk
或 printf
可以使列正确对齐。