Foros del Web » Administración de Sistemas » Unix / Linux »

comando sed

Estas en el tema de comando sed en el foro de Unix / Linux en Foros del Web. Hola, tengo un archivo que contiene lo siguiente: * 192.168.1.1 [España] * 192.168.2.1 [China] Me gustaría pasarlo a este formato: insert into tabla() values("192.168.1.1", "España"); ...
  #1 (permalink)  
Antiguo 30/05/2014, 03:01
 
Fecha de Ingreso: octubre-2013
Ubicación: madrid
Mensajes: 28
Antigüedad: 10 años, 6 meses
Puntos: 0
comando sed

Hola, tengo un archivo que contiene lo siguiente:

* 192.168.1.1 [España]
* 192.168.2.1 [China]

Me gustaría pasarlo a este formato:

insert into tabla() values("192.168.1.1", "España");

No consigo escapar los caracteres especiales tipo "," y ";"

Sería una sentencia "sed s/.../..../g fichero > fichero1"

Gracias, saludos!
  #2 (permalink)  
Antiguo 30/05/2014, 03:25
 
Fecha de Ingreso: septiembre-2012
Mensajes: 52
Antigüedad: 11 años, 7 meses
Puntos: 4
Respuesta: comando sed

Pon esta barra \
delante de los caracteres afectados

prueba con:

perl -pi -e "s/foo/bar/g;" fichero
  #3 (permalink)  
Antiguo 30/05/2014, 03:39
 
Fecha de Ingreso: octubre-2013
Ubicación: madrid
Mensajes: 28
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: comando sed

Escapandolo con \ me sirvio.

Ahora me surge otra duda, como puedo concatenar varios sed y guardarlos en otro fichero. He probado con sed 's/.../.../g' fichero > fichero1 | sed 's/..../.../g' fichero 1 > fichero1 y no da resultado. Solo guarda el ultimo.

Y usando >> en lugar de > me lo añade al final del documento.
  #4 (permalink)  
Antiguo 30/05/2014, 03:45
 
Fecha de Ingreso: octubre-2013
Ubicación: madrid
Mensajes: 28
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: comando sed

Resolvi mi duda tuve que crear sucesivos archivos para guardarlo.

Por ultimo como eliminar un espacio en blanco antes de un caracter concreto?
  #5 (permalink)  
Antiguo 31/05/2014, 21:26
Avatar de Drewermerc  
Fecha de Ingreso: febrero-2014
Mensajes: 185
Antigüedad: 10 años, 2 meses
Puntos: 5
Respuesta: comando sed

hola skreal.
para concatenar puedes hacer lo siguiente.
sed -e 's/a//g' -e 's/\"//g'
para eliminar espacios creo que con esto basta.
sed -e 's/ //g'

bueno espero haberte ayudado amigo.
Saludos.
Drewermerc.

Etiquetas: bash, comando, sed
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 06:00.