月の最終 X 曜日の日付 ― 2011年10月12日 18時09分45秒
% cal
October 2011
Su Mo Tu We Th Fr Sa
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
cal の出力は曜日によって固定されている。そこで、最終月曜日を得るには最後の列の二行目を取得すればいい。monday の値を順次更新していく。
% cal | awk '{monday=$2}END{print monday}'
31
ところがこれでは、最後の列に日付が無いと狂ってしまう。そこで、行数を点検する。
% cal | awk 'NF>=6{friday=$6}END{print friday}'
28
最近のコメント