
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.yyyy
a dd/mm/yyyy
así 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