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

Script sed

Estas en el tema de Script sed en el foro de Unix / Linux en Foros del Web. Buenas Estoy haciendo un script que trata un fichero de texto, y estoy atascado. Ya que tengo un par de campos del fichero separado por ...
  #1 (permalink)  
Antiguo 22/03/2011, 04:47
 
Fecha de Ingreso: marzo-2011
Mensajes: 3
Antigüedad: 13 años, 9 meses
Puntos: 0
Script sed

Buenas

Estoy haciendo un script que trata un fichero de texto, y estoy atascado. Ya que tengo un par de campos del fichero separado por comas. Estos campos son fecha y queria sustituir los - separadores DD-MM-YYYY, por / DD/MM/YYYY
He intentado son sed, pero este me sustituye los - por / en todas las apariciones de las lineas, ya que despues de estos campos hay otros con -. Esto lo hice con:

sed 's/-/\//g' ficheroTratar

Tambien probe con

sed "s/[0-9][0-9]-/&\//g" ficheroTratar

Con esta expresion buscaba NumNum-, y lo sustituia por la misma cadena seguida de / Pero aqui despues del guion me añadia /, con lo que seguia en las mismas

He probado con awk, pero en este no se como decir que la sustitucion sea solo en ciertos campos, (son $2, y $3).

Y si corto los campos con awk y los trato con sed

awk -F "," '{print $2,$3}' ficheroTratar | sed 's/-/\//g'

solo tengo esos dos campos, y no se como volverlos a insertar sustituyendo a los anteriores, ya que necesito el fichero con todos los campos y esos 2 sustituidos

Espero que podais echarme una mano, muchas gracias
  #2 (permalink)  
Antiguo 23/03/2011, 03:26
 
Fecha de Ingreso: marzo-2011
Mensajes: 3
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Script sed

Por favor alguien me podria echar una mano, estoy atascado y no se como continuar.
  #3 (permalink)  
Antiguo 23/03/2011, 17:22
Avatar de -Defero-
Colaborador
 
Fecha de Ingreso: julio-2004
Ubicación: Guipúzcoa
Mensajes: 4.776
Antigüedad: 20 años, 5 meses
Puntos: 76
Respuesta: Script sed

Prueba con esto:

sed -e 's/([0-9][0-9])-/\1\//g'

El truco está en el uso de los paréntesis, que sirven para señalar un conjunto de caracteres. Al ser el primero que se ha señalado, para luego reproducirlo habrá que escribir \1. Si no delimitas conjuntos de caracteres, trata toda la cadena como un único conjunto indisoluble, y lo reproduce entero, incluido el caracter que quieres sustituir.
__________________
abogado en Errenteria + procuradora en San Sebastián = equipo imparable
  #4 (permalink)  
Antiguo 24/03/2011, 05:48
 
Fecha de Ingreso: marzo-2011
Mensajes: 3
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Script sed

Muchas gracias, por fin me ha funcionado. Y ahora lo veo...

Etiquetas: sed, sistemas-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 04:09.