このエントリーをはてなブックマークに追加

awk用メモ

TOPコマンドの結果を加工

  • 1秒間隔で60回(1分)間の結果をtop.txtに出力

    回数制約を実施しない場合には「-n 60」設定しない。その場合「ctrl + c」にて終了させる。

    top -b -d 1 -n 60 > top.txt
    
  • 出力されたファイルのCPUおよびメモリ使用量を加工して出力

    cat top.txt | awk '{ if($1 ~ /^top/ || $1 ~ /^%Cpu/ ||  $1 ~ /^MiB/ ) print $0 }' | awk '{if(NR%4)ORS=",";else ORS="\n";print}' | awk -F, '{print $1"\t"$9"\t"$15"\t"$16}'
    

    出力結果

    top - 00:10:43 up 21 min        100.0 id          11445.0 free     1300.0 used
    top - 00:10:44 up 21 min         99.9 id          11445.0 free     1300.0 used
    top - 00:10:45 up 21 min         99.8 id          11445.0 free     1300.0 used
    top - 00:10:46 up 21 min         92.6 id          11446.8 free     1298.2 used
    top - 00:10:47 up 21 min         98.5 id          11446.8 free     1298.2 used
    top - 00:10:48 up 21 min         98.2 id          11446.8 free     1298.2 used
    top - 00:10:49 up 21 min         99.9 id          11446.4 free     1298.6 used
    top - 00:10:50 up 21 min         98.7 id          11446.4 free     1298.6 used
    top - 00:10:51 up 22 min         98.9 id          11446.4 free     1298.6 used
    ~~ 以下略 ~~