iostatの結果を1行にして表示する(vmstatみたいな感じでとってくる)

iostatの出力は1回で複数行出てしまうため、編集してやる必要がある。

iostat 1 -x -t /dev/sda |
  awk '
  BEGIN {
    print "time %user %nice %system %iowait %steal %idle Device rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util "
  }
  NF==2{
    # 2行目に実行される
    # 現在時刻を取ってくる
    s = strftime("%H:%M:%S");
    # 3行目を読む
    getline;
    # 4行目を読む
    getline;
    # フィールドの再構築(スペースを1個にまとめる)
    $1=$1;
    # avp-cpuの値をとってくる
    l=s " " $0 
  }
  /Device:/{
    # Device:が現れた行に実行される
    # Device:の次の行を読む
    getline; 
    # フィールドの再構築(スペースを1個にまとめる)
    $1=$1;
    # avp-cpuの値の後ろにデバイスの値をくっつける
    l=l " " $0;
    print l;
    fflush(); 
  }'

StackOverflowあたりから拾ってきたはずなんだけどどこから持ってきたか忘れちゃった。