Si un CSV combinado repite el encabezado de sus columnas entre lotes, puedes crear una acción rápida de Finder que conserve la primera línea y elimine las líneas posteriores que coincidan exactamente con ella. La acción que se muestra a continuación escribe un archivo .cleaned.csv independiente junto a cada archivo seleccionado, dejando el original intacto. Funciona para exportaciones de CSV ordinarias donde cada registro ocupa una línea; no analiza todos los formatos de CSV válidos.

Qué hará la acción rápida

El flujo de trabajo compara líneas completas, no campos individuales de CSV. Guarda la primera línea como encabezado, la copia en la salida y luego omite cualquier línea posterior idéntica a ese encabezado. Las demás filas se mantienen en su orden original, incluidas las filas de datos repetidas. Esta es una opción práctica cuando los lotes exportados insertan el mismo encabezado entre los registros.

El método utiliza el comando awk integrado de macOS a través de la acción Ejecutar script Shell de Automator. Apple documenta tanto la creación de acciones rápidas de Finder como la adición de scripts de shell a los flujos de trabajo de Automator. Crear un flujo de trabajo de Acción rápida · Usar una acción de script de shell en un flujo de trabajo de Automator

Crear la acción rápida de Finder

  1. Abre Automator, ve a Archivo > Nuevo, selecciona Acción rápida y haz clic en Seleccionar.
  2. En la parte superior del flujo de trabajo, establece El flujo de trabajo recibe la selección actual de en archivos o carpetas y ajusta la aplicación a Finder.
  3. Busca Ejecutar script Shell en la biblioteca de acciones y arrástrala hacia el flujo de trabajo.
  4. Establece Shell en /bin/zsh y Paso de entrada en como argumentos. Pega el siguiente script en la acción.
for file in "$@"; do
    if [ ! -f "$file" ]; then
        printf 'Not a regular file: %s\n' "$file" >&2
        exit 1
    fi

    output="${file}.cleaned.csv"
    if [ -e "$output" ]; then
        printf 'Output already exists; skipped: %s\n' "$output" >&2
        exit 1
    fi

    temporary=$(mktemp "${file}.tmp.XXXXXX") || exit 1
    if awk 'NR == 1 { header = $0; print; next }
            $0 != header { print }' "$file" > "$temporary"; then
        if ! mv "$temporary" "$output"; then
            rm -f "$temporary"
            exit 1
        fi
    else
        rm -f "$temporary"
        exit 1
    fi
done

Guarda el flujo de trabajo con un nombre como Remove Repeated CSV Headers. El archivo temporal se crea junto al archivo de origen y luego se mueve al nombre de salida tras el procesamiento. Si ese archivo de salida ya existe, el script se detiene en lugar de reemplazarlo. La entrada original nunca se utiliza como destino de escritura.

Ejecútalo y comprueba el resultado

En Finder, selecciona uno o más archivos CSV, abre el menú contextual Acciones rápidas y elige Remove Repeated CSV Headers. Busca junto a cada archivo de origen un archivo que termine en .cleaned.csv. Abre el resultado en un editor de texto o en una hoja de cálculo y comprueba que aún conserve un único encabezado y que las filas anteriores y posteriores a cada encabezado repetido sigan presentes. El flujo de trabajo no muestra ningún mensaje de finalización personalizado; que un archivo no se haya generado puede significar que la salida ya existía o que ocurrió un error de procesamiento.

La comparación es exacta: un encabezado con diferente uso de mayúsculas y minúsculas, espaciado, puntuación o entrecomillado se tratará como una línea diferente y se conservará. Esta restricción es intencionada; evita adivinar qué filas cuentan como encabezados cuando el texto del archivo varía.

Cuándo este método basado en líneas no es adecuado

El formato CSV puede contener campos entrecomillados con caracteres de salto de línea incrustados. En ese caso, un registro lógico de CSV puede abarcar varias líneas físicas, mientras que awk procesa la entrada línea por línea. El script podría entonces confundir una línea dentro de un campo con un registro o alterar el archivo. El manual de awk de macOS de Apple describe su procesamiento orientado a líneas; para archivos CSV multilínea, utiliza en su lugar una herramienta compatible con el formato CSV específico del archivo. Manual de awk de macOS

Esta acción rápida tampoco normaliza espacios en blanco, no elimina coincidencias aproximadas, no inspecciona nombres de columnas ni combina archivos. Es adecuada para una limpieza muy específica: eliminar repeticiones exactas de la primera línea física a partir de exportaciones CSV basadas en líneas, manteniendo al mismo tiempo el archivo original para su revisión.

Fuentes