amm*_*mar 4 sed awk perl text-processing
我有以下几点:
2018-11-10 23:57:21 [COMMAND]: sar -u 10 5
AIX host 1 7 11/10/18
System configuration: lcpu=64 mode=Capped
23:57:21 %usr %sys %wio %idle physc
23:57:31 10 7 0 83 16.00
23:57:41 9 6 0 85 16.00
23:57:51 9 6 0 85 16.00
23:58:01 9 7 0 84 16.00
23:58:11 10 6 0 84 16.00
Average 9 6 0 84 16.00
2018-11-10 23:58:21 [COMMAND]: sar -u 10 5
AIX host 1 7 11/10/18
System configuration: lcpu=64 mode=Capped
23:58:21 %usr %sys %wio %idle physc
23:58:31 10 8 0 82 15.99
23:58:41 9 6 0 85 16.00
23:58:51 9 6 0 85 16.00
23:59:01 9 6 0 84 16.00
23:59:11 10 6 0 83 16.00
Average 10 6 0 84 16.00
Run Code Online (Sandbox Code Playgroud)
我需要获得平均值的时间%idle
:
2018-11-10 23:57:21|84
2018-11-10 23:58:21|84
Run Code Online (Sandbox Code Playgroud)
Ini*_*ian 11
按原样查看输入文件,awk
如下所示的简单命令就足够了。
awk '/sar/{ time=$1" "$2; next }/Average/{ print time"|"$5 }' file
Run Code Online (Sandbox Code Playgroud)
几个选择:
awk
$ awk '/COMMAND/{printf "%s %s", $1,$2}/Average/{print "|"$5}' file
2018-11-10 23:57:21|84
2018-11-10 23:58:21|84
Run Code Online (Sandbox Code Playgroud)perl
$ perl -ale '$k="$F[0] $F[1]" if /COMMAND/; print "$k|$F[4]" if /Average/' file
2018-11-10 23:57:21|84
2018-11-10 23:58:21|84
Run Code Online (Sandbox Code Playgroud)