[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] duvida com sed
From: |
Luciano Machado Granella |
Subject: |
Re: [shell-script] duvida com sed |
Date: |
Thu, 21 Dec 2000 01:38:09 -0200 |
Maurício, seu script em perl se assemelhará com este :
#!/bin/perl -w
open (ENTRADA, "$ARGV[1]");
open (SAIDA, ">$ARGV[2]");
while (<ENTRADA>) {
chomp $_;
if ($_ == /^.*/) { #capture uma nova linha, tratar.
if ($_ !~ /@/) { #linha não tem @
print SAIDA "$_";
print SAIDA "@araketu.dcc.ufba.br\n" # \n indica nova linha
}
else { #linha tem @, apenas escreva no arquivo de saída
print SAIDA "$_\n"
}
}
}
close ENTRADA;
close SAIDA;
exit 0;
# execute o script assim:
#perl -w script arquivo_entrada arquivo-saida
# OBS: talvez vc tenha que alterar os prints do while
# para que o seu arquvio de saída saia fique como você queira
Eu não testei este script, teste-o e faça as modificações necessária.
Espero que eu tenha ajudado.
[ ]s,
Luciano
Mauricio Vieira wrote:
> Alo lista,
> tenho uma duvida com um script que penso ser possivel ser feito
> apenas com sed (sou iniciante). tenho uma serie de listas do majordomo e
> quero acrescentar o @araketu.dcc.ufba.br em todos os nomes que nao tiverem
> o @ (ha mails @outracoisa.dominio e nao devem ser alterados, mas todos os
> nomes que nao tem o @ sao araketu.dcc.ufba.br)
> nao entendo muito bem como o sed faz para apagar o nome do arquivo ou nao sei
> como posso substituir o nome no arquivo, entao fiz o seguinte:
>
> #!/bin/bash
>
> # Acerta.sh - script para adicionar o @araketu.dcc.ufba.br em todos os
> # logins de todas as listas que nao tiverem o @araketu.dcc.ufba.br
>
> # Por Mauricio B. C. Vieira - 2000dez19
>
> for I in $( ls -1 | grep -E -e 'info' -e 'config' | cut -f 1 -d . | sort \
> | uniq ); do
> cp $I $I.acerta
> for NOME in $( grep -v @ $I.acerta ); do
> sed '/NOME/d' $I.acerta >> $I
> sed 's/NOME/address@hidden/' $I.acerta >> $I
> done
> done
>
> #fim
>
> e nao funcionou. como o sed pode substituir o texto no proprio arquivo,
> sem ter que redirecionar pro pipe? percebi (testando) que se manda
> redirecionar a saida pro proprio arquivo ele apaga (sed 'algumacoisa'
> arquivo > arquivo) o proprio arquivo.
> o motivo daquele pequeno comando no ls eh pq o majordomo tem os arquivos
> lista-alunos, lista-alunos.config e lista-alunos.info e quero apenas o
> lista-alunos. alguma sugestao? nao sei awk nem perl, mas sugestoes sao
> bem-vindas (ateh um incentivo pra estudar isto tbm).
>
> +
> Mauricio Vieira
>
> +
>
>
> Inscrição: address@hidden
>
> Sair da lista: address@hidden
>
> Banco Dados: http://www.egroups.com/group/shell-script