last weekday by awk2011年10月26日 11時19分00秒

最後の曜日の日付を出力してみた。今回は、月の最後の平日。若干面倒なのが cal の出力。日曜日が一行目、土曜日が七行目となり、平日が丁度挟まれて真中になっている。そのため、土曜日の出力があるときは、金曜日を取得する必要がある。

% cal | NF >= 2{ if( NF >= 6 ) last = $6; else last = $NF}END{ print last }
31

シェルによってはコマンド行からでも複数の行に出来る。if else 句があると、一行では読みづらい。

% cal | nawk 'NF >= 2 {
  if( NF >= 6 )
    last = $6
  else
    last = $NF
}
END{ print last }'
31