Olá!

     Tentei o seguinte, veja se te ajuda:

$ cat teste.txt
ID COMANDO_AZUL
ID COMANDO_ABOBORA
ID COMANDO3_ VERDE

$ for i in $(cut -f2 -d" " teste.txt); do echo "${i:0:29} VALOR"; done
COMANDO_AZUL VALOR
COMANDO_ABOBORA VALOR
COMANDO3_ VALOR

-- 
[]'s
Cléoson.
http://farinhadigital.blogspot.com/

Em 25 de fevereiro de 2010 09:43, andelnyr <andel...@yahoo.com.br> escreveu:

>
>
> Prezados
>
> Estou recorrendo aos senhores pois estou experimentando uma certa
> dificuldade para para tratar uma lista de comandos:
>
> A lista é assim:
>
> ID COMANDO_AZUL
> ID COMANDO_ABOBORA
> ID COMANDO3_ VERDE
>
> Eu preciso que ela fique assim:
>
> COMANDO_AZUL VALOR:
> COMANDO_ABOBORA VALOR:
> COMANDO3_ VERDE VALOR:
>
> O total de caracteres desde o começo da linha até o inicio da palavra
> "VALOR" deve ser obrigatoriamente de 30 caracteres.
>
> Então eu fiz:
>
> #!/bin/bash
> espacos="(30 espaços)"
> while read linha
> do
> vetor ( $linha )
> echo "${vetor[1]}$(echo $espacos | cut –c-$(expr 30 - ${#vetor[1]}))VALOR"
> >> nova_lista
> done < lista
>
> E o resultado foi:
>
> COMANDO_AZULVALOR
> COMANDO_ABOBORAVALOR
> COMANDO3_ VERDEVALOR
>
> Então eu mudei para:
>
> #!/bin/bash
> espacos="------------------------------"
> while read linha
> do
> vetor ( $linha )
> echo "${vetor[1]}$(echo $espacos | cut –c-$(expr 30 - ${#vetor[1]}))VALOR"
> | tr – " " >> nova_lista
> done < lista
>
> E o resultado foi:
>
> COMANDO_AZUL
> VALOR
> COMANDO_ABOBORA
> VALOR
> COMANDO3_ VERDE
> VALOR
>
> Achei que fosse algum erro na lógica até que eu manualmente acrescentei um
> espaço no final de alguns comandos da lista original e então ficou assim:
>
> COMANDO_AZUL VALOR <--- está certo
> COMANDO_ABOBORA VALOR <--- está certo
> COMANDO3_ VERDE
> VALOR <--- está errado!
>
> Para me deixar fora de órbita, se eu criar uma lista num editor de textos
> com poucos comandos, tudo funciona.
> Se eu pegar lista original e acrescentar manualmente um espaço no final de
> cada comando, tudo funciona.
> Se eu pegar a lista original e aplicar o script – dá a zebra!
>
> Acredito que o problema esteja sendo causado pelo caracter "newline" no
> final de cada comando... mas porque isso nao acontece em uma lista que eu
> crio com o editor de textos?
>
> Adicionar manualmente o espaço em branco nas listas não e uma opção – pois
> além de ser uma blasfêmia, cada lista pode ter mais de 50000 linhas.
>
> Desde já agradeço qualquer dica.
>


[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-unsubscr...@yahoogrupos.com.br
---------------------------------------------------------------------
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:
    shell-script-unsubscr...@yahoogrupos.com.br

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


Responder a