Insertar texto y expresiones regulares
Horst von Brand
vonbrand en inf.utfsm.cl
Jue Jun 8 17:20:07 CLT 2006
luisviveropenna en cdsl.cl wrote:
> Tengo que insertar dos comas en un archivo que tiene la siguiente forma:
>
> 123213,32322,-180,324343,324432
> 23243,5655,-180,566556,56545
> 34456f7,55475,-240,454,767765
>
> Las dos comas deben ser insertadas inmediatamente despues de la tercera
> coma, para quedar asi:
>
> 123213,32322,-180,,,324343,324432
> 23243,5655,-180,,,566556,56545
> 34456f7,55475,-240,,,454,767765
>
> El numero despues del cual se agregan las comas es variable, como tambien
> el numero de caracteres despues del cual se agregan.
> Lo unico fijo es que se agregan despues de la tercera coma.
OK.
perl -pi.orig -e 's;^((?:[^,]*,){3});\1,;' los archi vos a pro ces ar
Los originales quedan en *.orig
perl(1), perlrun(1), perlre(1)
> Creo que puede hacerse con sed, o perl, pero tendria que contar las comas,
Exacto ;-)
> o poner cada linea en un string y despues recorrerlo,
Definitivamente!
> pero seria demasiado
> show para un archivo de app 6.000.000 de filas :S
Huaja! Que es esa cosa?! El vomito en CSV de alguna planilla de calculo
gigantesca?
> Alguna idea? --> le pego poco a las expresiones regulares.
Buena idea. Es mejor tratarlas con carin~o, como con todas las cosas.
--
Dr. Horst H. von Brand User #22616 counter.li.org
Departamento de Informatica Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria +56 32 654239
Casilla 110-V, Valparaiso, Chile Fax: +56 32 797513
Más información sobre la lista de distribución Linux