[Perl] $_=~s///g :)

Ing. Roberto Andrade Fonseca randrade@abl.com.mx
Sun, 9 Sep 2001 21:03:00 -0500 (CDT)


Hola:

On Fri, 7 Sep 2001, Aureliano wrote:

> Hola lista :)
>=20
> Estoy haciendo que modifica el formato de un archivo.
> El archivo contiene registros exportados de un Informix y los tengo que=
=20
> modificar para poder levantarlos en Postgres.
>=20
> El formato del archivo () generado por Informix seria mas o menos asi:
>=20
> campo1|campo2||campo4|...|campoN|
> campo1|campo2|campo3|campo4|...|campoN|
> ***
> ***
>=20
> Como pueden observar el separador de campo es el pipe: |
>=20
> Lo que sucede es que el postgres no me acepta valores nulos vacios, es=20
> decir doble pipe: ||. Si permite como valor nulo la cadena \N
> Lo que nec. pues, es reemplazar todas las ocurrencias || por |\N|
>=20

Con el editor vi(m):

:%s/||/|\\N|/g

pero hay que ejecutarlo dos veces.

Falta el caso en que el inicio sea nulo, y tambi=E9n el final.

:%s/^|/\\N|/g
:%s/|$/|\\N/g

Saludos,

Roberto Andrade Fonseca
randrade@abl.com.mx