用于分析列中数据的Shell脚本



我需要一些家庭作业问题的帮助。我在一个需要解析的文件中有以下数据:

              Output-------------------------- Input---------------- Random----
              -Per Char- --Block--- -Rewrite-- -Per Char- --Block--- --Seeks---
Machine    MB K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU K/sec  %CPU /sec  %CPU
         50.0 36112 34.1 138026  1.9 179048  7.0 51361 51.1 312242  4.3 15211.4 10.3

我需要的是一种从Block列中提取输出列和输入列的数据的方法。例如:

Output Block:
K/sec: 138026
%CPU:  1.9
Input Block:
K/sec: 312242
%CPU:  4.3

我仅限于使用sed、awk、cut和grep。

parse_data.txt:-是存在数据的文件。

more parse_data.txt |grep-v"-"|sed的/\/\/g'|awk'{print$4"$5"$10"$11}'

关于输出和输入块的CPU和k/sec数据已检索,如下所示,

得到的输出为:

K/sec  %CPU K/sec  %CPU
138026 1.9  312242 4.3

希望这能解决你的问题!!!!!

由于标题很奇怪,只有数据行有13个字段,所以您可以使用awk一行:

awk '{if (NF==13) printf "Output Block:nK/sec: %sn%CPU:  %snnInput Block:nK/sec: %sn%CPU:  %sn",$4, $5, $10, $11 }' inputfilename

如果你想解析shell 中的多行

while read LINE || [ "$LINE" ]; do ... done < inputfile

要拆分字符串,可以像一样再次使用read

read dummyvar dummyvar2 dummy3 outputkb ... <<< $mystring

相关内容

  • 没有找到相关文章

最新更新