TL; DR: Use -h
ao usar cal
Por quê?
O comando cal
imprime o dia atual com caracteres especiais ("realce"?). Descobri isso salvando-o em um arquivo e usando nano
( não cat
) para lê-lo:
$ cal >> out
$ nano out
Agora você verá o seguinte:
Abril 2014
do lu ma mi ju vi sá
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
_^H2_^H7 28 29 30
Além do espanhol (desculpe) 27 não é com caracteres simples.
Agora, se você usar -h
, isso será resolvido:
$ cal -h >> out2
$ nano out2
Sua saída deve ser assim para que você possa analisá-la sem problemas:
Abril 2014
do lu ma mi ju vi sá
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
Solução
No seu script, substitua cal | sed "s/$tmp/$pat/"
por cal -h | sed "s/$tmp/$pat/"
Fonte: link