[bcn-pm] manipular un fitxer canviant xifres negatives per un zero
Jose Luis Perez Diez
jluis a escomposlinux.org
dll mar 17 02:49:32 PDT 2014
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
Més informació sobre la llista de correu Barcelona-pm