E ai galera? na Paz?
Venho pedir a ajuda dos caros colegas com relação ao comando printf.
No meu trabalho eu estou desenvolvendo um script para comptrolar um PDC
em samba e para as funções de pesquisa e listagem de usuários eu utilizo
o printf para formatar a saida, juntamente com o tput para calcular as
colular e consegquentemente o espaçamento necessário entre elas.
O problema que estou enfrentando é que quando imprimo alguma string que
possua acento o printf puxa a formatação uma casa para esquerda nessa
respectiva linha para cada caracter acentuado, detonando a formatação da
lista.
O exemplo abaixo mostra o que estou falando
[root@ProxyP15 samba]# TAB=23;printf "%-$[TAB]s%-$[TAB]s\n" "ÁÁAAAA"
"BBBB"; printf "%-$[TAB]s%-$[TAB]s\n" "AAAAAA" "BBBB"
ÁÁÁAAA BBBB
AAAAAA BBBB
[root@ProxyP15 samba]# TAB=23;printf "%-$[TAB]s%-$[TAB]s\n" "ÁAAAAA"
"BBBB"; printf "%-$[TAB]s%-$[TAB]s\n" "AAAAAA" "BBBB"
ÁAAAAA BBBB
AAAAAA BBBB
[root@ProxyP15 samba]# TAB=23;printf "%-$[TAB]s%-$[TAB]s\n" "AAAAAA"
"BBBB"; printf "%-$[TAB]s%-$[TAB]s\n" "AAAAAA" "BBBB"
AAAAAA BBBB
AAAAAA BBBB
[root@ProxyP15 samba]#
Só pra constar já tentei colocar o AAAAAA sem aspas, com aspas duplas
como está no exemplo e com aspas simples tbm, dá tudo na mesma, sai do
alinhamento.
Não caso eu não encontre uma solução irei partir para passar o TR
removendo os acentos de tudo, mas como se trata de Nomes preferia não
fazer isso.
Já aproveitando a deixa se alguém souber como faço para truncar o número
de caracteres de uma variável impressa pelo printf seria de grande ajuda
tbm.
Grato,
Lawrence Waclawiak