Se eu fosse fazer um programa para rodar em sempre em um pc, sempre com 
a mesma resolução e com a janela maximizada o \t resolveria o problema, 
mas como tenho que pensar quer a pessoa poderá rodar o programa de 
qualquer pc, com qualquer resolução e tamanho de janela, ai ele não serve
Veja só um exemplo bem simples:
Maximiza a sua janela e dispara esse comando:
printf "%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t\n" 
ÁÁAAAAAAAAAAAAAAAAAAAAAAA BBBBBBBBB AAAAAAAAAA BB AAAAAAAAAAAAAA 
BBBBBBBBBBBBBBBBBBBBBBBBBBB AAAAAAAAAA BBBBBB AAAAAAA BBBB

Agora deixa ela de um tamanho médio e dispara o mesmo comando de novo.
Você vai ver que ele vai dar a saída em duas linhas, dessa forma já 
estragaria a lista.

Veja o que aconteceria com esse outro comando em tela grande mesmo:
printf "%s\t%s\t%s\t%s\t%s\t%s\t%s\t\n" ÁÁAAAAAAAAAAAAAAAAAAAAAAA 
BBBBBBBBB AAAAAAAAAA BB AAAAAAAAAAAAAA 
BBBBBBBBBBBBBBBBBBBBBBBBBBB;printf "%s\t%s\t%s\t%s\t%s\t%s\t%s\t\n" 
ÁÁAAA BBBBBBBBBBBBBBBBBBBB AAAAAAAAAA BB AAAAAAAAAAAAAA 
BBBBBBBBBBBBBBBBBBBBBBBBBBB

As colunas vão ficar desalinhadas pois o primeiro campo é maior que um 
\t(tab), dai vc poderia dizer para eu truncar cada saída a um tamanho X 
que fosse um pouco menor que um tab, certo? Mas ai o que aconteceria 
seria que se a tela estivesse muito pequena possivelmente o printf 
imprimiria as informações em 2 ou mais linhas e caso a janela estivesse 
grande ele exibiria vários compos com informação truncada sendo que 
teria espaço sobrando, dessa forma não vejo como utilizar um \t

Se vc voltar no ultimo e-mail que mandei para o Júlio vc verá que eu não 
uso um espaçamento fixo, só dei o exemplo com 10 para ficar simples de 
reproduzi-lo, eu na verdade com o tput capturo o numero de colunas 
disponíveis na tela, divido pelo numero de colunas que irei usar em 
minha lista(No caso são 7) pego esse numero e utilizo como espaçamento 
para a listagem e ainda pego novamente esse numero e subtraio - 3 e 
utilizo para truncar as informações, dessa forma o espaçamento sempre se 
adaptará da melhor maneira possível ao tamanho da tela e sempre teremos 
no mínimo 3 casas separando as colunas.

O que eu ainda não entendo é como tratar os acen...@!




Ederson Almeida escreveu:
>
> OK! To brigando aqui para achar uma solução, agora lhe pergunto, o que 
> interfere você trocar o espaçamento fixo definido em -10 por um TAB(ou 
> o que imagino o \t fazer)?
>
> "%-10s%-10s\ n" A B;printf "%-10s%-10s\ n" Á B
> A----------B
> Á---------B
>
> printf "%s\t\t%s\n" A B;printf "%s\t\t%s\n" Á B
> A B
> Á B
>
> Att,
>
> Ederson Dantas de Almeida.
>
> --- Em ter, 20/4/10, Lawrence Waclawiak <lawrencebbw@ yahoo.com. br 
> <mailto:lawrencebbw%40yahoo.com.br>> escreveu:
>
> De: Lawrence Waclawiak <lawrencebbw@ yahoo.com. br 
> <mailto:lawrencebbw%40yahoo.com.br>>
> Assunto: Re: [shell-script] AJuda com a formatação do printf quando 
> com palavras que possuam acento.
> Para: shell-script@ yahoogrupos. com.br 
> <mailto:shell-script%40yahoogrupos.com.br>
> Data: Terça-feira, 20 de Abril de 2010, 14:25
>
> Fala Mestre Júlio!
>
> Então Júlio, na verdade eu tava bem contente com a solução que arrumei
> para o trunk, vc viu o programa então lembra que o que eu precisava era
> pegar várias variáveis que possuem informações a cerca de usuários e
> imprimir em forma de uma lista com 7 colunas.
> Eu já tinha lido a pagina 225 e vi que com o printf da pra fazer o trunk
> usando %."Num"s, porém eu não consegui juntar esse trunk com a
> formatação da tabulação usando %-"Num"s com o complicante que minha
> tabulação tem de ser relativa ao numero de colunas capturado pelo tput,
> então fiz separado, a tabulação direto pelo printf e usei expansão de
> variáveis para truncar a variável em si.
> O resultado que obtive foi excelente, deu certinho, mesmo que deixe a
> tela minúscula ele mantem o alinhamento das colunas e trunca o conteúdo
> delas.
> Veja como ficou:
>
> COLUNAS=`tput cols`
>
> TAB=$(($COLUNAS / 7))
>
> printf
> "%-"$TAB"s%- "$TAB"s%- "$TAB"s%- "$TAB"s%- "$TAB"s%- "$TAB"s%- "$TAB"s\n"
> "${USER:0:$[ $TAB - 3]}" "${NOMECOMPLETO: 0:$[$TAB - 3]}"
> "${GRUPO:0:$ [$TAB - 3]}" "${STATUS:0: $[$TAB - 3]}" "${LPROFILE: 
> 0:$[$TAB
> - 3]}" "${LHOME:0:$ [$TAB - 3]}" "${LASTMOD:0: $[$TAB - 3]}"
>
> Mas isso é problema passado, o meu problema é relativo á acentuação, me
> parece que o printf não gosta muito dela e é bem simples para vc ver o
> que eu to falando sem ter de usar esse monte de comandos ai, basta abrir
> o bash e colar o comando:
> printf "%-10s%-10s\ n" A B;printf "%-10s%-10s\ n" Á B
> A----------B
> Á---------B
>
> Obs:Eu substitui os espaços em branco por "-" pois nossa lista de e-mail
> remove os espaços em branco duplicados.
> O que vc pode ver é que quando usei A e B sem acentos foi respeitado o
> espaçamento de 10 casas entre elas, porém quando acentuei o Á passei a
> ter apenas 9 casas entre Á e B na saída, esse que é meu problema e para
> cada letra acentuada impressa o printf come uma casa, veja esse outro
> exemplo mais drástico:
>
> printf "%-10s%-10s\ n" AAAAAA BBBBBB;printf "%-10s%-10s\ n" ÁÁÁÁAA BBBBBB
> AAAAAA----BBBBBB
> ÁÁÁÁAABBBBBB
> Nesse exemplo usei 4 Á e dessa forma o printf comeu 4 casa e colou os
> AAs nos BBs
>
> E ai, pra essa eu não achei resposta no livro, se bem que tbm não deu
> pra ler tudo ainda mas por consulta não achei.
>
> Help-me??
>
> Julio C. Neves escreveu:
> >
> > Fala Law,
> > eu te pedi para ler a seção correspondente ao printf e, pelo visto, 
> vc não
> > leu e, por isso, está montando um Frankstein. Vou ser mais 
> específico, mas
> > não vou te dar a resposta: leia pelo menos a página 225 que vc verá como
> > truncar.
> >
> > Abraços,
> > Julio
> > Cursos de Shell e Zenity em 2 fins de semana?
> > - Aracaju turma de Shell em 12/05 - andersonrizada@ gmail.com 
> <mailto:andersonrizada%40gmail.com>
> > <mailto:andersonriz ada%40gmail. com>;
> > - RJ turma de Shell em 14/06 - ligue (21)2210-6061;
> > - Turmas fechadas em outras cidades ligue (21) 8112-9988.
> >
> > Em 19 de abril de 2010 18:52, Lawrence Waclawiak
> > <lawrencebbw@ yahoo.com. br <mailto:lawrencebbw%40yahoo.com.br> 
> <mailto:lawrencebbw %40yahoo. com.br>>escreveu :
> >
> > > O problema de trucar eu já resolvi utilizando expansão de variáveis da
> > > seguinte forma:
> > >
> > > TAB=23;printf "%-$[TAB]s%- $[TAB]s\n" "${NOMECOMPLETO: 0:$[$TAB - 1]}"
> > > "${GRUPO:0:$ [$TAB - 1]}"
> > > Dessa forma a saida sempre é truncada com o tamanho da TAB - 1
> > >
> > > Mas persiste o problema principal referente à acentuação.
> > >
> > > ALguém tem mais alguma idéia ?
> > >
> > >
> > >
> > > Lawrence Waclawiak escreveu:
> > > > Opa.
> > > > Seguinte, o liguagem está em en_US.UTF-8
> > > > troquei a liguagem no script para pt_BR.UTF-8 mas não adiantou nada.
> > > > Você chegou a testar ai no seu pc se o desalinhamento ocorre?
> > > >
> > > >
> > > > Bruno Gunter escreveu:
> > > >
> > > >> Que tal usar UTF-8?
> > > >> Deve resolver teu problema.
> > > >>
> > > >> Para confirmar se você está usando o UTF-8, faça:
> > > >>
> > > >> set | grep UTF
> > > >>
> > > >> Que deve retornar algo como:
> > > >> GDM_LANG=pt_ BR.UTF-8
> > > >> LANG=pt_BR.UTF- 8
> > > >>
> > > >> []'s
> > > >> Gunter
> > > >>
> > > >> Em 19 de abril de 2010 17:36, Lawrence Waclawiak
> > > >> <lawrencebbw@ yahoo.com. br <mailto:lawrencebbw%40yahoo.com.br> 
> <mailto:lawrencebbw %40yahoo. com.br>
> > <mailto:lawrencebbw %40yahoo. com.br<lawrenceb bw%2540yahoo. com.br>
> > > >>escreveu:
> > > >>
> > > >>
> > > >>> Galera, vi que aki parece alinhado, deve ser alguma coisa do
> > e-mail mas
> > > >>> não fica alinhado no bash.
> > > >>> Tem de jogar o comando no Bash pra ver.
> > > >>>
> > > >>> Lawrence Waclawiak escreveu:
> > > >>>
> > > >>>> 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
> > > >>>>
> > > >>>> [r...@proxyp15 samba]# TAB=23;printf "%-$[TAB]s%- $[TAB]s\n"
> > "ÁÁAAAA"
> > > >>>> "BBBB"; printf "%-$[TAB]s%- $[TAB]s\n" "AAAAAA" "BBBB"
> > > >>>> ÁÁÁAAA BBBB
> > > >>>> AAAAAA BBBB
> > > >>>> [r...@proxyp15 samba]# TAB=23;printf "%-$[TAB]s%- $[TAB]s\n"
> > "ÁAAAAA"
> > > >>>> "BBBB"; printf "%-$[TAB]s%- $[TAB]s\n" "AAAAAA" "BBBB"
> > > >>>> ÁAAAAA BBBB
> > > >>>> AAAAAA BBBB
> > > >>>> [r...@proxyp15 samba]# TAB=23;printf "%-$[TAB]s%- $[TAB]s\n"
> > "AAAAAA"
> > > >>>> "BBBB"; printf "%-$[TAB]s%- $[TAB]s\n" "AAAAAA" "BBBB"
> > > >>>> AAAAAA BBBB
> > > >>>> AAAAAA BBBB
> > > >>>> [r...@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
> > > >>>>
> > > >>>>
> > > >>>>
> > > >>>
> > > >>>
> > > >>> ------------ --------- --------- ------
> > > >>>
> > > >>> ------------ --------- --------- --------- --------- --------- -
> > > >>> Esta lista não admite a abordagem de outras liguagens de
> > > >>>
> > > >> programação, como
> > > >>
> > > >>> perl, C etc. Quem insistir em não seguir esta regra será moderado
> > > >>>
> > > >> sem prévio
> > > >>
> > > >>> aviso.
> > > >>> ------------ --------- --------- --------- --------- --------- -
> > > >>> Sair da lista: shell-script- unsubscribe@ yahoogrupos. com.br 
> <mailto:shell-script-unsubscribe%40yahoogrupos.com.br>
> > <mailto:shell- script-unsubscri be%40yahoogrupos .com.br>
> > > >>>
> > > >>
> > <mailto:shell- script-unsubscri be%40yahoogrupos .com.br<shell- 
> script-unsubscri be%2540yahoogrup os.com.br>
> > > >
> > > >>
> > > >>> ------------ --------- --------- --------- --------- --------- -
> > > >>> Esta lista é moderada de acordo com o previsto em
> > > >>> http://www.listas- discussao. cjb.net 
> <http://www.listas-discussao.cjb.net>
> > <http://www.listas- discussao. cjb.net 
> <http://www.listas-discussao.cjb.net>>
> > > >>>
> > > >> <http://www.listas- discussao. cjb.net 
> <http://www.listas-discussao.cjb.net>
> > <http://www.listas- discussao. cjb.net 
> <http://www.listas-discussao.cjb.net>>>
> > > >>
> > > >>> ------------ --------- --------- --------- --------- --------- -
> > > >>> Servidor Newsgroup da lista: news.gmane.org
> > > >>> Grupo: gmane.org.user- groups.programmi ng.shell. brazil
> > > >>>
> > > >>> Links do Yahoo! Grupos
> > > >>>
> > > >>>
> > > >>> [image: InfoLink - Hospedagem de Sites]
> > > >>>
> > > >> *Bruno Gunter*
> > > >> Equipe InfoLink Hospedagem
> > > >> gun...@infolink. com.br <mailto:gunter%40infolink.com.br> 
> <mailto:gunter% 40infolink. com.br>
> > <mailto:gunter% 40infolink. com.br<gunter% 2540infolink. com.br>
> > > >
> > > >> <gun...@infolink. com.br <mailto:gunter%40infolink.com.br> 
> <mailto:gunter% 40infolink. com.br>
> > <mailto:gunter% 40infolink. com.br<gunter% 2540infolink. com.br>
> > > >>
> > > >> www.infolink. com.br
> > > >> Tel.: 2104-1932
> > > >>
> > > >> [As partes desta mensagem que não continham texto foram removidas]
> > > >>
> > > >>
> > > >>
> > > >
> > > >
> > > >
> > > >
> > > > ------------ --------- --------- ------
> > > >
> > > > ------------ --------- --------- --------- --------- --------- -
> > > > Esta lista não admite a abordagem de outras liguagens de 
> programação,
> > > como perl, C etc. Quem insistir em não seguir esta regra será
> > moderado sem
> > > prévio aviso.
> > > > ------------ --------- --------- --------- --------- --------- -
> > > > Sair da lista: shell-script- unsubscribe@ yahoogrupos. com.br 
> <mailto:shell-script-unsubscribe%40yahoogrupos.com.br>
> > <mailto:shell- script-unsubscri be%40yahoogrupos .com.br>
> > > > ------------ --------- --------- --------- --------- --------- -
> > > > Esta lista é moderada de acordo com o previsto em
> > > http://www.listas- discussao. cjb.net 
> <http://www.listas-discussao.cjb.net>
> > <http://www.listas- discussao. cjb.net 
> <http://www.listas-discussao.cjb.net>>
> > > > ------------ --------- --------- --------- --------- --------- -
> > > > Servidor Newsgroup da lista: news.gmane.org
> > > > Grupo: gmane.org.user- groups.programmi ng.shell. brazil
> > > >
> > > > Links do Yahoo! Grupos
> > > >
> > > >
> > > >
> > > >
> > >
> > >
> > >
> > >
> > > ------------ --------- --------- ------
> > >
> > > ------------ --------- --------- --------- --------- --------- -
> > > Esta lista não admite a abordagem de outras liguagens de
> > programação, como
> > > perl, C etc. Quem insistir em não seguir esta regra será moderado
> > sem prévio
> > > aviso.
> > > ------------ --------- --------- --------- --------- --------- -
> > > Sair da lista: shell-script- unsubscribe@ yahoogrupos. com.br 
> <mailto:shell-script-unsubscribe%40yahoogrupos.com.br>
> > <mailto:shell- script-unsubscri be%40yahoogrupos .com.br>
> > > ------------ --------- --------- --------- --------- --------- -
> > > Esta lista é moderada de acordo com o previsto em
> > > http://www.listas- discussao. cjb.net 
> <http://www.listas-discussao.cjb.net>
> > <http://www.listas- discussao. cjb.net 
> <http://www.listas-discussao.cjb.net>>
> > > ------------ --------- --------- --------- --------- --------- -
> > > Servidor Newsgroup da lista: news.gmane.org
> > > Grupo: gmane.org.user- groups.programmi ng.shell. brazil
> > >
> > > Links do Yahoo! Grupos
> > >
> > >
> > >
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
>
> ------------ --------- --------- ------
>
> ------------ --------- --------- --------- --------- --------- -
> Esta lista não admite a abordagem de outras liguagens de programação, 
> como perl, C etc. Quem insistir em não seguir esta regra será moderado 
> sem prévio aviso.
> ------------ --------- --------- --------- --------- --------- -
> Sair da lista: shell-script- unsubscribe@ yahoogrupos. com.br 
> <mailto:shell-script-unsubscribe%40yahoogrupos.com.br>
> ------------ --------- --------- --------- --------- --------- -
> Esta lista é moderada de acordo com o previsto em http://www.listas- 
> discussao. cjb.net <http://www.listas-discussao.cjb.net>
> ------------ --------- --------- --------- --------- --------- -
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user- groups.programmi ng.shell. brazil
>
> Links do Yahoo! Grupos
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> 





------------------------------------

---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como 
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
aviso.
---------------------------------------------------------------------
Sair da lista: [email protected]
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil

Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/shell-script/

<*> Para sair deste grupo, envie um e-mail para:
    [email protected]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html


Responder a