Eu não acho que seja possível para o padrão cal
, mas você pode querer dar uma olhada em gcal
, o Calendário GNU .
Para destacar o texto, você precisa passar a opção -H
:
-H text
--highlighting=text
Set highlighting sequence / marking character pairs explicitly.
In this sense, highlighting sequences are control character sequences
which cause a color or intensity switch in output text. Typical control
character sequences are the ANSI escape sequences [...]
Existe até mesmo um exemplo de feriados exatamente no manual :
For example:
-H \x20:\x20:\x1:# respectively
--highlighting=\x20:\x20:\x1:#
marks the actual day like ‘\x20actual date\x20’6 and the holiday date like
‘\x1holiday date#’ using the given marking characters.
-H \x1b[34;42m:\x1b[0;40m or
-H 3[34;42m:3[0;40m or
-H \E[34;42m:\E[0;40m
defines a starting ANSI escape highlighting sequence ‘\x1b[34;42m’ used for
actual day and ending ANSI escape highlighting sequence ‘\x1b[0;40m’ with no
given highlighting sequence for holidays, so default highlighting sequences for
holidays are used (non-given entries are always skipped).
Exemplo:
-
Para destacar o dia atual em azul e feriados para os Estados Unidos / Alasca (US_AK) em verde para o mês atual:
gcal -H '\e[34m:\e[0m:\e[32m:\e[0m' -q US_AK
Observação:
34
é o código ANSI para o primeiro plano azul e32
é o código ANSI para o primeiro plano em verdeOs resultados:
-
Para exibir o dia atual em vermelho (
31
) sobre fundo verde (42
) e chinês (CN
) feriados em amarelo (33
) em magenta (45
) para todo 2014gcal -H '\e[31;42m:\e[0m:\e[33;45m:\e[0m' -q CN 2014
Você encontrará todos os códigos de país em info gcal
na descrição da opção -q
.