Como imprimir o calendário para março e abril de 2015 e mostrar as entradas do calendário lado-a-lado? usando UNIX

0

como imprimir o calendário para março e abril de 2015 e mostrar as entradas do calendário lado a lado? no UNIX

    
por hdabaja 20.03.2015 / 16:45

3 respostas

3

Este comando:

paste <(cal 3 2015 | awk '{printf "%-20s\n",$0}') <(cal 4 2015)

criará esta saída:

     March 2015              April 2015
Su Mo Tu We Th Fr Sa    Su Mo Tu We Th Fr Sa
 1  2  3  4  5  6  7              1  2  3  4
 8  9 10 11 12 13 14     5  6  7  8  9 10 11
15 16 17 18 19 20 21    12 13 14 15 16 17 18
22 23 24 25 26 27 28    19 20 21 22 23 24 25
29 30 31                26 27 28 29 30

Nota: O subcomando awk foi usado para que a última linha do comando do lado esquerdo fosse preenchida corretamente.

Editar: Uma variante mais compacta que faz uso de um recurso cal (opção -3 ) e requer menos processos poderia ser:

cal -3 3 2015 | awk '{print substr($0,23)}'
    
por 20.03.2015 / 16:54
1

Se o parâmetro cal suporta -A é fácil exibir mais meses, você pode exibir o mês atual e o um deste mês:

cal -A1

Dessa forma, você também pode especificar que seja exibido diferente do mês e ano atuais usando a opção -m , pois março de 2015 será:

cal -A1 -m3 2015

Mas se você não pode usar -A , você pode combinar duas saídas com pr :

pr -t -m <(cal <your_params>) <(cal <your_params>)

ou com paste :

paste <(cal <your_params>) <(cal <your_params>)
    
por 20.03.2015 / 20:03
0
cal -3| awk '{print substr($0,23)}'
    
por 21.03.2015 / 10:51

Tags