fecha de coincidencia del patrón sed

fecha de coincidencia del patrón sed

Me cuesta entender cómo utilizar la coincidencia de patrones usando sed.

Dentro de un archivo grande, quiero reemplazar el siguiente formato de fecha de dd.mm.yyyya dd/mm/yyyyasí que básicamente reemplace los puntos con barras. El archivo contiene múltiples apariciones de fechas en el formato indicado; sin embargo, no debe cambiar los puntos al final de las oraciones, etc.

sed 's/\./\//g' <file_name> 

hace el trabajo pero cambia cada (.), por lo que necesito alguna forma de realizar una coincidencia de patrón.

Cualquier ayuda sería apreciada.

Gracias

Respuesta1

Esto hace el trabajo:

sed 's/\([0-9][0-9]\)\.\([0-9][0-9]\)\.\([0-9]\{4\}\)/\1\/\2\/\3/g' file

Explicación:

s/                  # substitute
  \([0-9][0-9]\)    # group 1, 2 digits
  \.                # a dot
  \([0-9][0-9]\)    # group 2, 2 digits
  \.                # a dot
  \([0-9]\{4\}\)    # group 3, 4 digits
/
  \1                # content of group 1
  \/                # a slash
  \2                # content of group 2
  \/                # a slash
  \3                # content of group 3
/g                  # global flag

información relacionada