Я использую этот код, но он только работает на январь. Как я могу использовать sed
работать в течение каждого месяца?
var='<table>\n<tr><th colspan="7">'
cal -h | sed '1{s|^|'"${var}"'|;s|$|</th></tr>|};2,${s|\(..\) |<td>\1</td>|g;s|^|<tr>|;s|$|</tr>|};$s|$|\n</table>|' >> file.html
Я использовал бы a for
цикл для движения за необходимые месяцы для 1–12 это:
var='<table>\n<tr><th colspan="7">'
for i in {1..12}; do
cal -hm$i | sed '1{s|^|'"${var}"'|;s|$|</th></tr>|};2,${s|\(..\) |<td>\1</td>|g;s|^|<tr>|;s|$|</tr>|};$s|$|\n</table>|' >>file.html
done
Это работает в 16,04. Как указано другими в комментариях и подтвержденный man
страница, в 17,10 (и seqq.) cal
не имеет -h
опция больше. Можно использовать ncal
вместо этого, посмотрите man cal
для деталей.