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