Cal não delimitador de espaço

3

Eu sou um usuário do OpenBSD e estou escrevendo um script awk que gera automaticamente calendários de cursos do TeX para todos os cursos que eu lecionar. Para obter o calendário real fora do sistema eu uso o comando Unix cal. O problema é que a saída do comando cal usa espaços como delimitadores, o que cria todos os tipos de problemas quando eu aplico meu script nawk a ele. Eu olhei o código-fonte para cal e parece que nada menos do que hackear o código-fonte forçará o comando cal para usar um delimitador diferente do espaço. Qual seria a maneira mais simples de fazer com que o calendário se parecesse com isso?

        June 2012
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
    
por Predrag Punosevac 29.05.2012 / 06:27

1 resposta

5

Você pode usar sed para isso.

$ cal|sed -e '1n;s/\(..\)\(.\)/,/g'
      May 2012      
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, 31

1n imprime a primeira linha e passa para a próxima. O substituto então pega os caracteres três por três e imprime os dois primeiros seguidos por , e depois o terceiro.

    
por 29.05.2012 / 08:11