Pessoal, com um pouco de estudo em awk irão conhecer o campo NF
NF = number of fields (número de campos)
Então segue um exemplo pra encerrar o assunto:
echo "um programador deve estudar" | awk '{ for (i = 2; i <= NF; i++) { 
print $i } }'
Que itera de 2 até o número total de campos, lembrando que em awk o 
inicio é 1 e não zero.

Espero ter ajudado, não programo muito em shell, só em C
logo irei comprar o livro do nosso amigo Julio C. Neves
abraço

voyeg3r escreveu:
>
> --- Em shell-script@yahoogrupos.com.br 
> <mailto:shell-script%40yahoogrupos.com.br>, "Julio C. Neves"
> <[EMAIL PROTECTED]> escreveu
> >
> > Aê Tiago assim não vale... Qdo o Flavio colocou $3-9 ele queria dizer do
> > campo3 ao nono. Subtrair tb dá para fazer em shell puro, veja:
> >
> > $ vet=(um dois tres quatro cinco)
> > $ echo ${vet[5-3]}
> > tres
> > $ echo ${vet[5-5]}
> > um
> >
> > Acho que o que ele quer é mais parecido com isso:
> >
> > $ read fruta1 resto <<< "Pera Uva Maçã"
> > $ echo $fruta1
> > Pera
> > $ echo $resto
> > Uva Maçã
> >
> > Mas em awk, isso é problema seu. Me inclua fora dessa... :)
> >
> > Abração,
> > Julio
>
> Fiz assim, mas acho que deve haver um jeito melhor (vou pesquisar)
>
> seq 30 | tr '\n' ' ' | awk '{ for (i=7;i<=30;i++) print $i}'
>
> >
> > Em 30/05/07, Tiago Barcellos Peczenyj <[EMAIL PROTECTED]> escreveu:
> > >
> > > Claro
> > >
> > > $ seq 30 | tr '\n' ' ' | awk '{print $4}'
> > > 4
> > > $ seq 30 | tr '\n' ' ' | awk '{print $(5-1)}'
> > > 4
> > >
> > > Simples, não ?
> > >
> > > On 5/30/07, Flavio Junior <[EMAIL PROTECTED] <billpp%40gmail.com>> wrote:
> > > >
> > > > Já que se prontificou a postar uma "dica" sobre o awk ...
> > > >
> > > > Como fazer no awk referencia ao resto dos campos ?
> > > > Exemplo:
> > > > awk '{print $1,$3,$4,$5,$6,$7,$8,$9...}'
> > > > Substituir isso por, algo como:
> > > > awk '{print $1,$3-9}'
> > > >
> > > > Tem como ser feito ?
> > > >
> > > > Flavio do Carmo Junior
> > > >
> > > > On 5/30/07, voyeg3r <[EMAIL PROTECTED]
> <voyeg3r%40yahoo.com.br><voyeg3r%40yahoo.
> > > com.br>> wrote:
> > > > >
> > > > > Para quem conhece o awk pule esta definição dada pelo zago:
> > > > >
> > > > > O que significa awk?
> > > > >
> > > > > Awk é uma linguagem com muitas funcionalidades, excelente na
> > > > > manipulação de strings e arquivo texto, muito útil pra usar na
> linha
> > > > > de comando, em scripts, em combinação com outros aplicativos
> como cat,
> > > > > ls e etc...
> > > > >
> > > > > ===== A dica =========
> > > > > O delimitador de campos padrão do awk é o espaço, e portanto
> se quizer
> > > > > que ele imprima a saída também com espaços basta colocar uma
> vírgula
> > > > > entre os campos, no exemplo abaixo retiro o espaço existente
> entre os
> > > > > campos 2 e 3
> > > > >
> > > > > echo "um dois tres quatro" | awk '{print $1,$2$3,$4}'
> > > > >
> > > > > E para deixar o pessoal com agua na boca veja um exemplo em
> que troco
> > > > > os campos 4 e 1 de lugar
> > > > >
> > > > > echo "um dois tres quatro" | awk '{print $4,$2,$3,$1}'
> > > > >
> > > > > Ou ainda pego o meu endereço IP
> > > > >
> > > > > ifconfig eth0 | awk '/inet end/ {print $3}'
> > > > >
> > > > > Referências:
> > > > > * http://www.zago.eti.br/script/awk.html 
> <http://www.zago.eti.br/script/awk.html>
> > > > > * http://sergioaraujo.pbwiki.com/awk 
> <http://sergioaraujo.pbwiki.com/awk>
> > > > >
> > > > > " °v°
> > > > > " /(_)\
> > > > > " ^ ^
> > > > >
> > > > > :wq
> > > > >
> > > > >
> > > > >
> > > >
> > > > [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]
> > >
> > >
> > >
> >
> >
> >
> > --
> > Abraços,
> > Julio
> > http://www.julioneves.com <http://www.julioneves.com> - Um livro 
> sobre Bash completo e on-line
> > :wq
> >
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
>
>  

Responder a