Tengo varios miles de archivos en un directorio que me gustaría clasificar en directorios como este:
De esto:
└── Files
├── AAA.mkv
├── AAA.nfo
├── AAA-picture.jpg
├── BBB.mp4
├── BBB.srt
├── BBB-clip.mp4
├── CCC.avi
├── CCC.srt
├── CCC-clip.mov
└── CCC.nfo
A esto:
└── Files
├── AAA
│ ├── AAA.mkv
│ ├── AAA.nfo
│ └── AAA-picture.jpg
├── BBB
│ ├── BBB.mp4
│ ├── BBB.srt
│ └── BBB-clip.mp4
└── CCC
├── CCC.avi
├── CCC.srt
├── CCC-clip.mov
└── CCC.nfo
Los nombres de los archivos varían en longitud y número de palabras, a veces separados por espacios y posiblemente algunos con guiones (además de los que terminan en '-short'. Son principalmente archivos de video con una variedad de formatos / contenedores: mov / mpg / mkv / mp4 / avi / ogg. Algunos están subtitulados. Algunos tienen archivos con metadatos asociados (.nfo o -clip)
Editar: Los archivos principales son videos (aquí es donde me gustaría dibujar el nombre del directorio). Los archivos asociados representan metadatos. Algunos diferentes en nombres solo por la extensión. Hay una media docena de otras variaciones en el nombre de archivo base como -clip.mp4 -clip.mov o -picture.jpg Pensé que si se sugería algo con esos pocos, entonces podría (con suerte) resolver el resto. En resumen, AAA.mkv se mueve a un directorio llamado AAA. Luego, todos los archivos de metadatos que comienzan con AAA se unen (es decir, en este ejemplo: AAA-picture.jpg y AAA.nfo). Entonces, el nombre base es de hecho una subcadena en el caso del archivo AAA-picture.jpg. Diría que probablemente es relativamente seguro usar simplemente el guión como factor de delimitación ... aunque '-clip' o '-picture' en su totalidad sería más seguro.
¿Cómo puedo hacer esto sin tener el síndrome del túnel carpiano? Miré esto, pero era lo suficientemente diferente como para que mis débiles habilidades de secuencias de comandos fracasaran.
Gracias.
AAA
y AAA-picture
. En este caso, sin embargo, quiere ambos AAA.mkv
y AAA-picture.jpg
estar debajo de la AAA
carpeta. Esto no es una extracción de nombre base, es una extracción de subcadena, o al menos dividir el nombre de archivo en múltiples separadores y usar la primera cadena como nombre de directorio.
BBB-clip.mp4
yCCC-clip.mov
AAA-picture.jpg
? ¿Qué se supone que es la "regla" que determina cómo crear una carpeta? ¿Qué cantidad del nombre de archivo se debe extraer? Por supuesto, podemos dividir nombres de archivos usando.
y-
como separadores y extraer la primera parte. Pero también dices que pueden separarse por espacios y otros caracteres, entonces pregunta si siguen la misma regla,AAA
luego separador y luego otro texto.