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] > > > >