shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Último token em uma linha


From: Bruno Gunter Fricke
Subject: Re: [shell-script] Último token em uma linha
Date: Tue, 13 Mar 2007 11:51:09 -0300

É verdade, faltou passar o comando pro awk... Mas basta adicionar o echo
na frente, assim não tem problema ;-)



On Tue, 2007-03-13 at 11:09 -0300, Tiago Barcellos Peczenyj wrote:
> Bruno, vc testou a saída desse comando ?
> 
> Não vai funcionar por 2 motivos
> 
> 1) o awk precisa de alguma fonte de informação, como não há pipe para
> ele
> nem arquivo, ele fica parado esperando entrar dados pela entrada
> padrão
> 
> 2) o let, nesse contexto, não faz sentido. (ficaria tudo 1)
> 
> o proprio awk da conta do recado
> 
> awk '{print $1"."$NF}' arquivo
> 
> se vc quisesse fazer um laço, seria interessante vc usar while
> 
> I) cat arquivo | while read nome ; do echo $nome | awk ... ; done
> 
> II) while read nome ; do echo $nome | awk ... done < arquivo
> 
> para usar o for, vc teria que alterar a variavel IFS
> 
> ( IFS=$'\n' ; for i in `cat arquivo`; do echo $i ; done; )
> 
> coloquei os () para não alterar o valor da IFS corrente, assim roda
> tudo em
> um subshell.
> 
> para usar o let, nesse contexto, ou alguma variavel numerica que vai
> sendo
> incrementada, seria mais logico vc fazer uso de arrays
> 
> $ ( IFS=$'\n' NOMES=($(cat arquivo)) ; echo "um array com ${#NOMES[@]}
> elementos" )
> um array com 3 elementos
> 
> ou então fazer uso do head/tail ou awk ou sed para imprimir uma
> determinada
> linha do arquivo.
> 
> em todos os casos, o awk le o arquivo de entrada e trata dos dados
> facilmente (sem falar em performance), sem necessidade de maiores
> malabarismos, entretanto se vc precisa fazer mais alguma coisa com os
> dados,
> um laço no shell pode ser uma solução simples!
> 
> (( tudo isso e muito mais vcs poderão ver no curso de shell script/
> awk
> /etc for crazy people no site do CentOSBr)
> ( e logo teremos ferramentas web usando estes recursos made in
> Brazil!))
> ( humm (isso (lembra (lisp $(mas sao subshells)))))
> 
> Abraços
> 
> On 3/13/07, Bruno Gunter Fricke <address@hidden> wrote:
> >
> > Pode completar com um for... Do tipo
> >
> > $ for i in `cat arquivo`; do let i++; awk '{print $1"."$NF}'; done;
> >
> > On Tue, 2007-03-13 at 09:42 -0300, Tiago Barcellos Peczenyj wrote:
> > > Pense em AWK
> > >
> > > $ echo 'CAROLINA DE FREITAS SCHUINDT' | awk '{print $1"."$NF}'
> > > CAROLINA.SCHUINDT
> > >
> > > $ echo 'CAROLINA DE FREITAS SCHUINDT' | awk '{print
> > > tolower($1"."$NF)}'
> > > carolina.schuindt
> > >
> > > claro que pode ser feito em sed e outras ferramentas também
> > >
> > > T
> > >
> > > On 3/13/07, Edmilson Santana (listas)
> <address@hidden<edmilson.listas%40superig.com.br>
> > >
> > > wrote:
> > > >
> > > > Pessoal,
> > > >
> > > > Bom dia, estou querendo gerar uma listas de logins no formato
> > > > <nome>.<ultimo nome>.
> > > >
> > > > Meu arquivo de entrada é no formato:
> > > >
> > > > ALEXANDRE VAZ DE ALMEIDA
> > > > CAIO MOREIRA VAN DEURSEN
> > > > CAROLINA DE FREITAS SCHUINDT
> > > > .
> > > > .
> > > > .
> > > >
> > > > Alguma idéia ?
> > > >
> > > > []'s
> > > >
> > > > Edmilson Santana
> > > >
> > > >
> > >
> > > --
> > > Tiago B Peczenyj
> > > Linux User #405772
> > >
> > > # cd /pub
> > > # more beer
> > >
> > > [As partes desta mensagem que não continham texto foram removidas]
> > >
> > >
> > >
> > >
> > >
> > >
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> > 
> >
> 
> -- 
> Tiago B Peczenyj
> Linux User #405772
> 
> # cd /pub
> # more beer
> 
> [As partes desta mensagem que não continham texto foram removidas]
> 
> 
> 
> 
> 
>  


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]