[bcn-pm] manipular un fitxer canviant xifres negatives per un zero
Javier Arturo Rodriguez
codehead a gmail.com
dll mar 17 03:14:07 PDT 2014
GOLF! ;-)
Ya sé que no debería hacer esto en un thread en el que escribe Xavi
Noria, pero si utilizamos el switch -l (automatic line‐ending
processing) podemos quitar las comillas y el newline, para una ganancia
neta de 3 puntos:
perl -lpe'$_=$_<0?0:$_' dades.txt
Salut!
-Javier Arturo Rodríguez
On 2014-03-17 10:49 , Jose Luis Perez Diez wrote:
> El Monday 17 March 2014 09:44:43 Agud Pique, Enric va escriure:
>> Hola gent,
>>
>> una consulta. Tinc un fitxer que amb dades. Totes les dades estan en una sola columna. Vull convertir tots els números negatius en zero i guardar el resultat, tota la columna de nou. Estic fent servir el següent codi però no sé si vaig bé. Suposo que he de llegir linea a linea...fent un chomp($linea) i si detecta un numero inferior a zero que el canvii a zero, pero quan arribo en aquest apartat no sé si el codi detecta que el que li passo es un numero o no....
> Jo per aquest cas si fas servir un entorn unix (linux,bsd,..) ho faria amb un oneliner:
> perl -pe'$_=0>$_?"0\n":$_'
> que executa un programa semblant a aquest (mira perldoc perlrun per veure el codi real)
>
> while (my $col =<>) {
> $col = "0\n" if 0 > $col;
> print $col
> }
>
> que et permet fer-ho servir com a filtre
>
> perl -pe'$_=0>$_?"0\n":$_' dades.txt | altres processos
>
> o per editar el fitxer
>
> perl -pie'$_=0>$_?"0\n":$_' dades.txt
>
> ...
>
> espero que et serveixi
>
> --
> jluis
> _______________________________________________
> llista dels Barcelona-pm
> Barcelona-pm at pm.org
> http://mail.pm.org/mailman/listinfo/barcelona-pm
> BCN Perl Mongers: http://barcelona.pm.org
Més informació sobre la llista de correu Barcelona-pm