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

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

Re: [shell-script] linhas múltiplas de 4


From: miranda
Subject: Re: [shell-script] linhas múltiplas de 4
Date: Fri, 12 Dec 2008 08:41:44 -0200

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: address@hidden
email: address@hidden
=== linha em branco ===
Nome: Carlos
Sobrenome: Martin
email: address@hidden
email: address@hidden
=== linha em branco ===
Nome: Lucia
Sobrenome: Andrade
email: address@hidden
email: address@hidden

[miranda@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}

[miranda@guitar ~]$ awk -f awk.cmd texto
=== linha em branco ===
Nome: Nair
Sobrenome: Silveira
email: address@hidden
email_alternativo: address@hidden
=== linha em branco ===
Nome: Carlos
Sobrenome: Martin
email: address@hidden
email_alternativo: address@hidden
=== linha em branco ===
Nome: Lucia
Sobrenome: Andrade
email: address@hidden
email_alternativo: address@hidden



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: address@hidden
> email_alternativo: address@hidden
> 
> Nome: Carlos
> Sobrenome: Martin
> email: address@hidden
> email_alternativo: address@hidden
> 
> Nome: Lucia
> Sobrenome: Andrade
> email: address@hidden
> email_alternativo: address@hidden
> 
> 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 <address@hidden>:
> > 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: address@hidden
> > email: address@hidden
> > === linha em branco ===
> > Nome: Carlos
> > Sobrenome: Martin
> > email: address@hidden
> > email: address@hidden
> > === linha em branco ===
> > Nome: Lucia
> > Sobrenome: Andrade
> > email: address@hidden
> > email: address@hidden
> >
> > Quero alterar o segundo "email" para "email_alternativo", ficando
> então:
> >
> > Arquivo_Novo.txt
> > === linha em branco ===
> > Nome: Nair
> > Sobrenome: Silveira
> > email: address@hidden
> > email_alternativo: address@hidden
> > === linha em branco ===
> > Nome: Carlos
> > Sobrenome: Martin
> > email: address@hidden
> > email_alternativo: address@hidden
> >
> > ... e por ai vai.
> >
> > Quebrei a cabeça e não consegui, por isso peço a ajuda de vcs.
> > Agradeço desde já !!!
> >
> >
> 
> 
> 
>  



reply via email to

[Prev in Thread] Current Thread [Next in Thread]