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

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

Re: [shell-script] Captura de entradas especificas


From: Flavio Junior
Subject: Re: [shell-script] Captura de entradas especificas
Date: Wed, 17 Jun 2009 16:00:08 -0300

Ah..

So troca o ~ /8/ ali por

$NF == 8

Se não ele pega 88, 28, 98, 80000 ...

--

Flávio do Carmo Júnior aka waKKu

2009/6/17 Flavio Junior <address@hidden>

> [root@muttley ~]# cat x
> campo1: aaaa
> campo2: bbbb
> mail: address@hidden
> campo4: cccc
> campo5: ddd
> registro: 8
> campo7: xxxx
> campo8: zzzz
>
> campo1: aaaa
> campo2: bbbb
> mail: address@hidden
> campo4: cccc
> campo5: ddd
> registro: 1
> campo7: xxxx
> campo8: zzzz
>
> campo1: aaaa
> campo2: bbbb
> mail: address@hidden
> campo4: cccc
> campo5: ddd
> registro: 8
> campo7: xxxx
> campo8: zzzz
>
> [root@muttley ~]# grep -E '^(mail|registro):' x | paste - - | awk '$NF ~
> /8/{print $2}'
> address@hidden
> address@hidden
> [root@muttley ~]#
>
>
> Uma ideia..
>
> --
>
> Flávio do Carmo Júnior aka waKKu
>
> 2009/6/17 Cléoson Barreto <address@hidden>
>
>
>>
>> Olá!
>>
>> Fiz esse pequeno script. Eu pego blocos do arquivo tendo como
>> delimitadores desde a linha 1 do arquivo até a primeira linha em branco e
>> jogo em uma variável ($bloco). Depois, excluo esse bloco do arquivo
>> original
>> e repito o processo até que o arquivo original fique vazio.
>>
>> --- script ---
>> cleoson@cleoson:~$ cat teste.sh
>> #!/bin/bash
>>
>> cp arq.txt{,.$$}
>> teste=0
>>
>> while [ "$teste" -eq "0" ]
>> do
>> bloco=`sed -n '1,/^ /p' arq.txt.$$`
>> sed -n -i '1,/^ /!p' arq.txt.$$
>> grep -q "registro: 8" <<< "$bloco" && grep mail <<< "$bloco"
>> [ ! -s arq.txt.$$ ] && teste=1
>> done
>> rm -f arq.txt.$$
>> ------
>>
>> --- execução do script ---
>> cleoson@cleoson:~$ ./teste.sh
>>
>> mail: address@hidden <fulano%40mail.com.br>
>> mail: address@hidden <beltrano%40mail.com.br>
>> ------
>>
>> --- arquivo original ---
>> cleoson@cleoson:~$ cat arq.txt
>> campo1: aaaa
>> campo2: bbbb
>> mail: address@hidden <fulano%40mail.com.br>
>> campo4: cccc
>> campo5: ddd
>> registro: 8
>> campo7: xxxx
>> campo8: zzzz
>>
>> campo1: aaaa
>> campo2: bbbb
>> mail: address@hidden <cicrano%40mail.com.br>
>> campo4: cccc
>> campo5: ddd
>> registro: 1
>> campo7: xxxx
>> campo8: zzzz
>>
>> campo1: aaaa
>> campo2: bbbb
>> mail: address@hidden <beltrano%40mail.com.br>
>> campo4: cccc
>> campo5: ddd
>> registro: 8
>> campo7: xxxx
>> campo8: zzzz
>> ------
>>
>> []'s
>> Cléoson.
>> http://farinhadigital.blogspot.com/
>>
>> 2009/6/17 Adriano Nunes <address@hidden<estudo_linux%40yahoo.com.br>
>> >
>>
>> >
>> >
>> > Só complementando:
>> >
>> > Teria como eu determinar que as linhas em branco que são as delimitações
>> > tipo: grep -B(até a linha em branco)
>> >
>> > --- Em qua, 17/6/09, Adriano Nunes 
>> > <address@hidden<estudo_linux%40yahoo.com.br>
>> <estudo_linux%40yahoo.com.br>>
>> > escreveu:
>> >
>> > De: Adriano Nunes 
>> > <address@hidden<estudo_linux%40yahoo.com.br><estudo_linux%
>> 40yahoo.com.br>
>> > >
>> >
>> > Assunto: Re: [shell-script] Captura de entradas especificas
>> > Para: address@hidden<shell-script%40yahoogrupos.com.br><shell-script%
>> 40yahoogrupos.com.br>
>>
>> > Data: Quarta-feira, 17 de Junho de 2009, 14:31
>> >
>> >
>> > Belezura Galera!
>> > Ficou massa, mas tem um detalhe percebi que nos registros as vezes a
>> > entrada "registro: 8 e mail: " mudam de linha, então o esquema grep -B5
>> -A2
>> > falha, alguém tem alguma ideia para resolver esse novo problema...rs ?
>> >
>> > --- Em qua, 17/6/09, Julio C. Neves <julio.neves@ gmail.com> escreveu:
>> >
>> > De: Julio C. Neves <julio.neves@ gmail.com>
>> > Assunto: Re: [shell-script] Captura de entradas especificas
>> > Para: shell-script@ yahoogrupos. com.br
>> > Data: Quarta-feira, 17 de Junho de 2009, 14:06
>> >
>> > Aê Adriano,
>> > no prompt:
>> >
>> > $ echo "campo1: aaaa
>> > campo2: bbbb
>> > mail: fulano@mail. com.br
>> > campo4: cccc
>> > campo5: ddd
>> > registro: 8
>> > campo7: xxxx
>> > campo8: zzzz
>> > (pula 1 linha)
>> >
>> > campo1: aaaa
>> > campo2: bbbb
>> > mail: cicrano@mail. com.br
>> > campo4: cccc
>> > campo5: ddd
>> > registro: 1
>> > campo7: xxxx
>> > campo8: zzzz
>> >
>> > (pula 1 linha)
>> >
>> > campo1: aaaa
>> > campo2: bbbb
>> > mail: beltrano@mail. com.br
>> > (pula 1 linha)" | *grep -B5 -A2 'registro: 8'*
>> > campo1: aaaa
>> > campo2: bbbb
>> > mail: fulano@mail. com.br
>> > campo4: cccc
>> > campo5: ddd
>> > registro: 8
>> > campo7: xxxx
>> > campo8: zzzz
>> > --
>> > campo1: aaaa
>> > campo2: bbbb
>> > mail: beltrano@mail. com.br
>> > campo4: cccc
>> > campo5: ddd
>> > registro: 8
>> > campo7: xxxx
>> > campo8: zzzz
>> >
>> > Se quiser tirar as linhas com --, basta ao final colocar* | grep -v --
>> --*,
>> > ficando assim
>> >
>> > *grep -B5 -A2 'registro: 8' | grep -v -- --*
>> >
>> > Onde o primeiro -- serve para dizer que encerram os parâmetros. Se isso
>> não
>> > for feito, o grep reclamará a falta da cadeia (ou expressão regular) que
>> > ele
>> > deverá pesquisar, pois "acha" que -- é uma opção.
>> > --
>> > Abraços,
>> > Julio
>> > Cursos de Shell e Zenity?
>> > - Em SP ligue (11) 2125-4747;
>> > - Em DF ligue (61) 3223-3000;
>> > - No RJ darei um treinamento em 23/07 (p/ detalhes ligue (21)
>> 2561-0867);
>> > - Turmas fechadas em outras cidades ligue (21) 8112-9988
>> >
>> > 2009/6/17 Adriano Nunes <estudo_linux@ yahoo.com. br>
>> >
>> > >
>> > >
>> > > Bom dia Galera!
>> > >
>> > > Estou precisando de uma ajuda na elaboração de um script, pesquisei na
>> > > internet, mas infelizmente não encontrei nada parecido.
>> > >
>> > > Vamos lá, tenho um arquivo no seguinte formato:
>> > >
>> > > ************ ********* ********* ********* ********* ********* *******
>> > > campo1: aaaa
>> > > campo2: bbbb
>> > > mail: fulano@mail. com.br <fulano%40mail. com.br>
>> > > campo4: cccc
>> > > campo5: ddd
>> > > registro: 8
>> > > campo7: xxxx
>> > > campo8: zzzz
>> > > (pula 1 linha)
>> > >
>> > > campo1: aaaa
>> > > campo2: bbbb
>> > > mail: cicrano@mail. com.br <cicrano%40mail. com.br>
>> > > campo4: cccc
>> > > campo5: ddd
>> > > registro: 1
>> > > campo7: xxxx
>> > > campo8: zzzz
>> > >
>> > > (pula 1 linha)
>> > >
>> > > campo1: aaaa
>> > > campo2: bbbb
>> > > mail: beltrano@mail. com.br <beltrano%40mail. com.br>
>> > > campo4: cccc
>> > > campo5: ddd
>> > > registro: 8
>> > > campo7: xxxx
>> > > campo8: zzzz
>> > >
>> > > (pula 1 linha)
>> > >
>> > > .... (segue mais ou menos ums 500 registros... rs)
>> > > ************ ********* ********* ********* ********* ********* *******
>> > >
>> > > Preciso que seja capturado os e-mails, apenas dos registros que tem o
>> > > numero 8.
>> > >
>> > > Alguém pode me ajudar, por gentileza!
>> > >
>> > > Valew galera do bem!
>> > >
>> > > Abraço.
>> > >
>> > > Veja quais são os assuntos do momento no Yahoo! +Buscados
>> > > http://br.maisbusca dos.yahoo. com
>> > >
>> > > [As partes desta mensagem que não continham texto foram removidas]
>> > >
>> > >
>> >
>>
>> [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]