Considerando que não existe a string email no e-mail do usuário , caso contrário é necessária uma pequena modificação
cat texto === linha em branco === Nome: Nair Sobrenome: Silveira email: nsilve...@dom.com email: nsilve...@hotmail.com === linha em branco === Nome: Carlos Sobrenome: Martin email: carlos.mar...@dom.com email: cmarti...@walla.net === linha em branco === Nome: Lucia Sobrenome: Andrade email: luc...@dom.com email: luci...@hotmail.com [mira...@guitar ~]$ cat awk.cmd BEGIN{FLAG=1;} $0 !~ /email/ {print} $0 ~ /email/ && FLAG == 1 {print;FLAG=0;next} $0 ~ /email/ && FLAG == 0 {sub("email", "email_alternativo");print;FLAG=1} [mira...@guitar ~]$ awk -f awk.cmd texto === linha em branco === Nome: Nair Sobrenome: Silveira email: nsilve...@dom.com email_alternativo: nsilve...@hotmail.com === linha em branco === Nome: Carlos Sobrenome: Martin email: carlos.mar...@dom.com email_alternativo: cmarti...@walla.net === linha em branco === Nome: Lucia Sobrenome: Andrade email: luc...@dom.com email_alternativo: luci...@hotmail.com On Fri, 2008-12-12 at 00:15 -0200, Guilherme Gall wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Fiz o seguinte script em awk. Vê se ajuda: > > $ cat script.awk > BEGIN{ > RS="" > FS="\n" > OFS="\n" > } > > { > sub(/email/, "email_alternativo", $4) > print $0"\n" > } > > $ awk -f script.awk arquivo_original.txt > Nome: Nair > Sobrenome: Silveira > email: nsilve...@dom.com > email_alternativo: nsilve...@hotmail.com > > Nome: Carlos > Sobrenome: Martin > email: carlos.mar...@dom.com > email_alternativo: cmarti...@walla.net > > Nome: Lucia > Sobrenome: Andrade > email: luc...@dom.com > email_alternativo: luci...@hotmail.com > > Não consegui manter as linhas em branco em seus lugares originais, > perceba que a primeira linha foi apagada e que uma linha em branco > extra foi adicionada no final da saída. Acredito que o segredo está no > uso adequado da variável ORS, mas não consegui fazer funcionar e ainda > tive que concatenar um \n no final de cada registro para colocar uma > linha em branco entre cada um. > > Se alguém mais experiente em awk puder dar uma idéia seria > interessante. > > Saudações, > - -- > Guilherme Magalhães Gall (GMGall) > GPG Public Key ID: 0F498058 > > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.9 (GNU/Linux) > Comment: http://getfiregpg.org > > iEYEARECAAYFAklByvoACgkQZV3qXg9JgFjf/ACdFdEM7fIqFm+EoOyRk4drztw7 > BqEAnR09iG+fXm/i1DzV7iWnmtu/0Zei > =32AY > -----END PGP SIGNATURE----- > > 2008/12/11 Molinero <cybercro...@gmail.com>: > > Pessoal, > > > > Gostaria de uma ajuda de vocês. > > Preciso fazer um script que leia um arquivo e de 4 em 4 linhas deste > > arquivo e altere uma parte desta linha. > > > > Ex.: > > Arquivo_Original.txt > > === linha em branco === > > Nome: Nair > > Sobrenome: Silveira > > email: nsilve...@dom.com > > email: nsilve...@hotmail.com > > === linha em branco === > > Nome: Carlos > > Sobrenome: Martin > > email: carlos.mar...@dom.com > > email: cmarti...@walla.net > > === linha em branco === > > Nome: Lucia > > Sobrenome: Andrade > > email: luc...@dom.com > > email: luci...@hotmail.com > > > > Quero alterar o segundo "email" para "email_alternativo", ficando > então: > > > > Arquivo_Novo.txt > > === linha em branco === > > Nome: Nair > > Sobrenome: Silveira > > email: nsilve...@dom.com > > email_alternativo: nsilve...@hotmail.com > > === linha em branco === > > Nome: Carlos > > Sobrenome: Martin > > email: carlos.mar...@dom.com > > email_alternativo: cmarti...@walla.net > > > > ... e por ai vai. > > > > Quebrei a cabeça e não consegui, por isso peço a ajuda de vcs. > > Agradeço desde já !!! > > > > > > > > ------------------------------------ --------------------------------------------------------------------- Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. --------------------------------------------------------------------- Sair da lista: shell-script-unsubscr...@yahoogrupos.com.br --------------------------------------------------------------------- Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net --------------------------------------------------------------------- Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: shell-script-unsubscr...@yahoogrupos.com.br <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html