2 votos

Ordenar archivos por hoja de cálculo

Tengo una carpeta que contiene más de 1000 archivos de texto. Los archivos de texto se supone que se organizan en carpetas.

Tengo una hoja de cálculo que los estados que archivo de texto que va en la carpeta:

enter image description here

Hay alguna manera de que pueda hacer el "Buscador" de responder a esta hoja de cálculo, por lo que pone el archivo correcto en la carpeta correcta. Tal vez algo que implican Applescript o de la terminal? Es sólo un simple "Apple Números de" hoja de cálculo, por lo que puedo copiar y pegar los datos en algo más.

4voto

Los siguientes se supone que ni el archivo ni los nombres de las carpetas contienen comas (,) y que el archivo CSV exportado utiliza , como separador.

Como los pequeños errores pueden conducir a resultados inesperados y la pérdida de datos es recomendable hacer primero una copia de seguridad.

  • Eliminar cualquier resto de las columnas, líneas de cabecera y las líneas en blanco al final de la tabla (de modo que sólo contiene dos columnas con el nombre de archivo y nombre de la carpeta, respectivamente)
  • Exportar los datos como un archivo CSV con nombre files.csv a la carpeta que contiene los archivos de texto
  • Abra El Terminal
  • cd into/the/folder
  • Ejecutar perl -pi -e 's/\r\n/\n/;' files.csv a convertir CSV a partir de DOS-como final de línea para el estándar de Unix estilo
  • Copia/pega el siguiente (el código de la prueba, no va a crear/mover nada)

    while IFS=, read file folder; do
        # if the folder doesn't exist yet -> create it
        [[ -d "$folder" ]] || echo mkdir "$folder"
        # if file exists -> move it
        if [[ -r "$file" ]]; then
            echo mv "$file" "$folder"/
        else
            echo "Uups, $file not found"
        fi
    done < files.csv
    
  • Si la salida se ve bien (especialmente si no "Uups, xxx" no se encontró la salida se muestra, ni de cualquier otro de los mensajes de error), ejecute

    while IFS=, read file folder; do
        [[ -d "$folder" ]] || mkdir "$folder"
        if [[ -r "$file" ]]; then
            mv "$file" "$folder"/
        else
            echo "Uups, $file not found"
        fi
    done < files.csv
    

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X