¿Cero números de pad en la salida 'cal' (o 'gcal')?

1

Esto parecía bastante fácil, pero no he encontrado una buena manera de hacerlo.

En la Terminal, cal dará esta salida:

September 2015 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

Es decir, mostrará el calendario del mes actual.

Me gustaría que se muestre así:

September 2015 Su Mo Tu We Th Fr Sa 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

Parece que sería bastante fácil de hacer, pero hasta ahora no puedo resolverlo.

Inicialmente pensé que solo buscaría los números del 1 al 9 con un espacio a cada lado. Eso funciona ... excepto si el número es el sábado o el domingo, porque entonces no hay relleno inicial / final.

Así que estoy en una pérdida. Incluso miré GNU cal que parece tener opciones bazillion, pero no pude encontrar una para esto.

Estoy seguro de que hay una manera de hacer esto con sed / awk / tr / etc pero no puedo resolverlo. Preferiría una solución tan “liviana” como sea posible, ya que esto es algo que se ejecutará con frecuencia, pero no soy adverso a instalar otra cosa a través de brew si puede hacer un trabajo mejor / más eficiente.     

pregunta TJ Luoma 09.09.2015 - 18:17

1 respuesta

2

sed al rescate:

pse@Mithos:~$ cal 09 2015 | sed -e 's/ \([[:digit:]]\) /0 /g' \
                                -e 's/ \([[:digit:]]\)$/0/g'
   September 2015
Su Mo Tu We Th Fr Sa
      01 02 03 04 05
06 07 08 09 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30

La combinación de los dos comandos sed en uno se deja como un ejercicio para el lector.

    
respondido por el nohillside 09.09.2015 - 18:44

Lea otras preguntas en las etiquetas