Como enfatizar feriados por cor no comando 'cal'

5

Eu quero enfatizar os feriados por cor em cal ou comando similar.

Estou usando o OS X e o Ubuntu 14, existe uma maneira fácil de ativar a função?

    
por ironsand 28.10.2014 / 06:40

1 resposta

7

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 e 32 é o código ANSI para o primeiro plano em verde

    Os 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 2014

    gcal -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 .

    
por 28.10.2014 / 07:19

Tags