2024-11-21

Obsidian - Reemplazar fechas dd-mm-aaaa por aaaa-mm-dd.

Obsidian-Regex-Replace es un plugin para Obsidian que te permite realizar búsquedas y reemplazos avanzados utilizando expresiones regulares. Las expresiones
regulares son patrones que te ayudan a buscar y manipular texto de manera eficiente.

Cómo funciona:

  • Buscar: Podés buscar texto en tus notas usando patrones específicos.

  • Reemplazar: Podés reemplazar ese texto por otros valores, ya sea estáticos o formateados según capturas del patrón.

Ejemplo de uso:

Si tenés fechas en el formato 21/11/2024 y querés convertirlas a [[2024-11-21]] para que sean enlaces en Obsidian, usarías la expresión regular (\d{2})\/(\d{2})\/(\d{4}) para buscar y [[$3-$2-$1]] para reemplazar.

Pasos a seguir:

  1. Abrí la herramienta de reemplazo de Obsidian Regex Replace con CTRL+P y escribir Regex .

  2. Introduce la expresión regular (\d{2})\/(\d{2})\/(\d{4}).

  3. En el campo de reemplazo, escrib [[$3-$2-$1]]

Asegurate de que estés utilizando el campo de reemplazo correcto en la herramienta para que los grupos se reemplacen adecuadamente. Debería funcionar para convertir las fechas en el formato deseado.

Instalá directamente del link: https://obsidian.md/plugins?id=obsidian-regex-replace

https://github.com/Gru80/obsidian-regex-replace

Usando un script en python.

Este script recorre las carpetas del directorio especificado y edita los archivos usando la expresión anterior. 
import os
import re

# Configurá el directorio donde se encuentran tus archivos markdown
directorio = r'd:\carpeta\'

# Expresión regular para encontrar fechas en formato DD/MM/AAAA
patron = re.compile(r'(\d{2})\/(\d{2})\/(\d{4})')

# Reemplazo para cambiar fechas a [[AAAA-MM-DD]]
reemplazo = r'[[\3-\2-\1]]'

# Función para recorrer directorios y subdirectorios
def corregir_fechas_en_directorio(directorio):
    for root, _, files in os.walk(directorio):
        for archivo in files:
            if archivo.endswith('.md'):
                ruta_archivo = os.path.join(root, archivo)
                
                try:
                    # Lee el contenido del archivo
                    with open(ruta_archivo, 'r', encoding='utf-8') as file:
                        contenido = file.read()

                    # Reemplaza las fechas en el contenido
                    nuevo_contenido = re.sub(patron, reemplazo, contenido)

                    # Escribe el nuevo contenido de vuelta al archivo
                    with open(ruta_archivo, 'w', encoding='utf-8') as file:
                        file.write(nuevo_contenido)

                    print(f'Fechas corregidas en: {ruta_archivo}')
                
                except PermissionError:
                    print(f'Permiso denegado: {ruta_archivo}')
                except Exception as e:
                    print(f'Error al procesar {ruta_archivo}: {e}')

# Ejecutar la función
corregir_fechas_en_directorio(directorio)