[SP-pm] Deletar linha atual do arquivo

Bruno Borela bruno.borela em gmail.com
Terça Novembro 21 09:04:14 PST 2006


Isso não daria problema caso a última linha do arquivo desse match com o
pattern /d/? (o 'problema' seria o usuário ter que fazer um EOF manualmente
com CTRL+C ou afim, o que no seu caso não deve fazer muita diferença)

Sugiro o mesmo approach só que com o switch -e:

perl -ni~ -e 'print if $_ !~ /d/' nomedoarquivo

Se for mais complicado acho que o Tie::File do Nelson é melhor (que eu não
conhecia!)


Putamplexos (c) :)

On 11/21/06, Eden Cardim <edencardim em gmail.com> wrote:
>
> On 11/21/06, Rudolfo rosa <rudolforosa em gmail.com> wrote:
> > Galera,
> >   minha primeira duvida: Como deletar a linha atual de um arquivo ??
> > Eu achei uma solucao, mas acredito que nao eh a melhor.
> >
> > #!/usr/local/bin/perl
> >
> > $file = arq; #arq tem 4 linhas contendo a b c d
> > $new = "$file.tmp.$$";
> >
> > open(LOGS, $file) or die;
> > @log=<LOGS>;
> > close(LOGS);
> >
> > foreach $l (@log){
> > #print "current $l";
> > $i++;
> > if ($l =~ /d/){
> > delete @log[$i-1];
> > }
> > }
> > open(NEW, "> $new")         or die "can't open $new: $!";
> > foreach $l (@log){
> > print NEW $l;
> > }
> > close(NEW);
> > rename($new, $file)          or die "can't rename $new to $old: $!";
> >
> > Obrigado, Rudolfo.
> > _______________________________________________
> > SaoPaulo-pm mailing list
> > SaoPaulo-pm em pm.org
> > http://mail.pm.org/mailman/listinfo/saopaulo-pm
> >
>
> perl -pi~ -e '$_ = <> if /d/' seuarquivo
>
> --
> Eden Cardim
> Instituto Baiano de Biotecnologia
> Núcleo de Biologia Computacional e Gestão de Informações Biotecnológicas
> Laboratório de Bioinformática
> --
> "you seem to think that 'close enough' is close enough...
> please learn to be 'literal' around programming."
> merlyn - on irc.freenode.net#perl
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm em pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/saopaulo-pm/attachments/20061121/e1adbe6a/attachment.html 


Mais detalhes sobre a lista de discussão SaoPaulo-pm