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 <bil...@gmail.com> > [r...@muttley ~]# cat x > campo1: aaaa > campo2: bbbb > mail: ful...@mail.com.br > campo4: cccc > campo5: ddd > registro: 8 > campo7: xxxx > campo8: zzzz > > campo1: aaaa > campo2: bbbb > mail: cicr...@mail.com.br > campo4: cccc > campo5: ddd > registro: 1 > campo7: xxxx > campo8: zzzz > > campo1: aaaa > campo2: bbbb > mail: beltr...@mail.com.br > campo4: cccc > campo5: ddd > registro: 8 > campo7: xxxx > campo8: zzzz > > [r...@muttley ~]# grep -E '^(mail|registro):' x | paste - - | awk '$NF ~ > /8/{print $2}' > ful...@mail.com.br > beltr...@mail.com.br > [r...@muttley ~]# > > > Uma ideia.. > > -- > > Flávio do Carmo Júnior aka waKKu > > 2009/6/17 Cléoson Barreto <cleoson.barr...@gmail.com> > > >> >> 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 --- >> cleo...@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 --- >> cleo...@cleoson:~$ ./teste.sh >> >> mail: ful...@mail.com.br <fulano%40mail.com.br> >> mail: beltr...@mail.com.br <beltrano%40mail.com.br> >> ------ >> >> --- arquivo original --- >> cleo...@cleoson:~$ cat arq.txt >> campo1: aaaa >> campo2: bbbb >> mail: ful...@mail.com.br <fulano%40mail.com.br> >> campo4: cccc >> campo5: ddd >> registro: 8 >> campo7: xxxx >> campo8: zzzz >> >> campo1: aaaa >> campo2: bbbb >> mail: cicr...@mail.com.br <cicrano%40mail.com.br> >> campo4: cccc >> campo5: ddd >> registro: 1 >> campo7: xxxx >> campo8: zzzz >> >> campo1: aaaa >> campo2: bbbb >> mail: beltr...@mail.com.br <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 >> <estudo_li...@yahoo.com.br<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 >> > <estudo_li...@yahoo.com.br<estudo_linux%40yahoo.com.br> >> <estudo_linux%40yahoo.com.br>> >> > escreveu: >> > >> > De: Adriano Nunes >> > <estudo_li...@yahoo.com.br<estudo_linux%40yahoo.com.br><estudo_linux% >> 40yahoo.com.br> >> > > >> > >> > Assunto: Re: [shell-script] Captura de entradas especificas >> > Para: >> > shell-script@yahoogrupos.com.br<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: ful...@mail. com.br >> > campo4: cccc >> > campo5: ddd >> > registro: 8 >> > campo7: xxxx >> > campo8: zzzz >> > (pula 1 linha) >> > >> > campo1: aaaa >> > campo2: bbbb >> > mail: cicr...@mail. com.br >> > campo4: cccc >> > campo5: ddd >> > registro: 1 >> > campo7: xxxx >> > campo8: zzzz >> > >> > (pula 1 linha) >> > >> > campo1: aaaa >> > campo2: bbbb >> > mail: beltr...@mail. com.br >> > (pula 1 linha)" | *grep -B5 -A2 'registro: 8'* >> > campo1: aaaa >> > campo2: bbbb >> > mail: ful...@mail. com.br >> > campo4: cccc >> > campo5: ddd >> > registro: 8 >> > campo7: xxxx >> > campo8: zzzz >> > -- >> > campo1: aaaa >> > campo2: bbbb >> > mail: beltr...@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: ful...@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: cicr...@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: beltr...@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]