[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Dicas sobre o delimitador de campos padrão do awk
From: |
Julio C. Neves |
Subject: |
Re: [shell-script] Dicas sobre o delimitador de campos padrão do awk |
Date: |
Wed, 30 May 2007 18:35:22 -0300 |
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
Em 30/05/07, Tiago Barcellos Peczenyj <address@hidden> 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 <address@hidden <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 <address@hidden
> > <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://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 - Um livro sobre Bash completo e on-line
:wq
[As partes desta mensagem que não continham texto foram removidas]