Foros del Web » Soporte técnico » Ayuda General »

Problemas con expresiones regulares y sed (UNIX)

Estas en el tema de Problemas con expresiones regulares y sed (UNIX) en el foro de Ayuda General en Foros del Web. Buenas a todos, Sucede que tengo lo siguiente: Cita: 000000 20110518 111001000670716 201105180001 GAGGION ALFREDO RAFAEL La idea es que con una expresión regular se ...
  #1 (permalink)  
Antiguo 02/08/2012, 07:33
 
Fecha de Ingreso: agosto-2010
Mensajes: 5
Antigüedad: 13 años, 8 meses
Puntos: 0
Exclamación Problemas con expresiones regulares y sed (UNIX)

Buenas a todos,

Sucede que tengo lo siguiente:

Cita:
000000 20110518
111001000670716 201105180001

GAGGION ALFREDO RAFAEL
La idea es que con una expresión regular se sustituya las dos primeras líneas por algo específico. Tengo lo siguiente:

Cita:
s/0\{6,\}\x20*[0-9]\{8,\}\x0A[0-9]\{15,\}\x20*[0-9]\{12,\}/<?xml version="1.0" encoding="windows-1252"?><Archivo><Resumen><p><r>1<\/r>/g
Ahora, como pueden ver esta definido las dos primeras lineas para remplazarlas. Pero, no se el porque no me esta funcionando o no me interpreta el salto de linea. He probado con:

Cita:
\x0A
\x0D
\x0D\x0A
\n
\r
\n\r
\r\n
La verdad ya no se como hacer para que me interprete el salto de línea. Agradezco la ayuda que me puedan dar.
  #2 (permalink)  
Antiguo 02/08/2012, 13:46
 
Fecha de Ingreso: agosto-2010
Mensajes: 5
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Problemas con expresiones regulares y sed (UNIX)

Para quien le interesa la solución es la siguiente:

Cita:
:a;N;$!ba;s/\r\n/|/g
# Reemplaza x0Dx0A por ;
s/\(0\{6,\}\x20*[0-9]\{8,\}\)\x0A\([0-9]\{15,\}\x20*[0-9]\{12,\}\)/<?xml version="1.0" encoding="windows-1252"?><Archivo><Resumen><p><r>1<\/r>/g
Lo que hace este codigo es:

Cita:
1. Hace una sustitución de los saltos de línea por |.
2. Luego al hacer la sustitución de estos, se emplea el código hexadecimal para identificar el salto de línea y listo.
Resultado:

Cita:
<?xml version="1.0" encoding="windows-1252"?><Archivo><Resumen><p><r>1</r>
GAGGION ALFREDO RAFAEL

Etiquetas: expresiones, regulares, unix
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:02.