[bcn-pm] manipular un fitxer canviant xifres negatives per un zero
Jose Luis Perez Diez
jluis a escomposlinux.org
dll mar 17 06:15:44 PDT 2014
El Monday 17 March 2014 12:01:48 Xavier Noria va escriure:
> 2014-03-17 11:14 GMT+01:00 Javier Arturo Rodriguez <codehead a gmail.com>:
>
> 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
>
>
> perl -ple 's/-.*/0/' foo.txt
>
> Recuerda que -p imprime lo que sea que tenga $_ despues del codigo, no hace
> falta setearla a si misma :).
No se si los switches a emplear forman parte del GOLF. Como '.' no hace match con \n en esta regegex, podemos ahorrar otro golpe:
perl -pe 's/-.*/0/' foo.txt
pero dado que el OP no especifica que pasa si la linea no contiene un numero, ni el formato de estos, lo mas corto y que menos altera la entrada que se me ocurre es:
perl -lpe '$_=0if0>$_' foo.txt
He estado tentado a contestar desde el mobil y todo.
--
jluis
Més informació sobre la llista de correu Barcelona-pm