Cambia la struttura delle cartelle (della raccolta musicale) in base ai nomi delle cartelle (perché Foobar2000 si è rotto)


0

Cara comunità di superutente, vorrei iniziare dicendo che ho pochissima esperienza di programmazione, quindi mi scuso in anticipo nel caso in cui la mia domanda possa sembrare un po 'strana.

Di recente ho provato a ristrutturare le cartelle della mia collezione musicale. Prima, tutti gli album erano raccolti in una cartella dedicata, quindi la cartella di base della raccolta conteneva cartelle denominate qualcosa di simile

BASE\'<Artist> - [<year>] <album title>'

Volevo cambiare la struttura della raccolta in modo che i file fossero archiviati in cartelle lungo la "regola"

BASE\'<Artist>'\'[<year>] <album title>'

Foobar2000 è riuscito a creare queste nuove cartelle per la maggior parte degli album e a spostare lì gli mp3. Tuttavia, purtroppo il programma si è arrestato in modo anomalo durante il processo e le vecchie cartelle esistono ancora. Queste vecchie cartelle contengono ancora copertine, ecc. Ora mi rimangono due cartelle per album: la sottocartella dell'album dell'artista con tutti gli mp3 e la cartella originale con la copertina.

Se non si fosse bloccato, Foobar2000 avrebbe spostato tutto il contenuto nelle nuove sottocartelle e cancellato quelle originali. Ora mi chiedo se posso finire il lavoro con qualcosa come uno script di shell (che non avevo mai usato prima in vita mia)?

Immagino che lo script debba scorrere su tutte le cartelle in BASEe

  1. Verifica se il nome della cartella ha la struttura '<Artist> - [<year>] <album title>', ad esempio testando se contiene la parte centrale' - '
  2. Verifica se la cartella '<Artist>'\'[<year>] <album title>'esiste e, in tal caso, sposta lì tutto il contenuto rimanente
  3. Elimina la cartella originale '<Artist> - [<year>] <album title>'

È qualcosa che uno script di shell potrebbe ottenere? Qualsiasi aiuto o suggerimento sarebbe molto apprezzato.


Sì, uno script di shell può farlo, tuttavia tieni presente che superuser.com non è un servizio di scrittura di script / codice gratuito. Se ci dici cosa hai provato finora (includi gli script / codice che stai già utilizzando) e dove sei bloccato, allora possiamo provare ad aiutare con problemi specifici. Dovresti anche leggere Come faccio una buona domanda? .
David Post

1
@DavidPostill Grazie! Mi scuso se ho dato l'impressione di voler abusare della comunità aspettandomi una soluzione pronta. Non era certamente mia intenzione. Devo ammettere che non ho codificato nulla di sofar - ho imparato a conoscere gli script di shell solo ieri. Quello che ho visto sembrava implicare una curva di apprendimento piuttosto ripida per una persona inesperta come me, quindi volevo principalmente assicurarmi che uno script di shell potesse effettivamente ottenere una soluzione per il mio piccolo problema prima di fare il notevole investimento di tempo per iniziare a studiare script di shell da zero.
Turtle,

Risposte:


0

Sì, questo è esattamente il tipo di cosa che puoi fare con uno script di shell. Hai già svolto il 90% del lavoro per capire esattamente cosa deve fare il tuo algoritmo. Vorrei riempire alcuni degli spazi vuoti.

Cygwin ti darà un ambiente di scripting bash. Questa risposta suggerisce come scorrere un elenco di cose in bash. grep testerà la struttura del nome della cartella ed estrarrà le parti di interesse (ad esempio il nome dell'artista). mkdir creerà le directory (potresti voler esaminare l' -popzione) e rmdir le rimuoverà. mv sposterà effettivamente i file da una directory all'altra.


Grazie! Questo è esattamente il tipo di informazioni che speravo. Ci proverò sicuramente.
Turtle,

Prego. Se ritieni di aver risposto alla tua domanda, contrassegna la mia risposta come accettata. Ciò mi premia con i deliziosi punti reputazione che bramo e significa che la tua domanda non verrà più visualizzata nell'elenco delle domande senza risposta in cui l'ho trovata.
Hugh W

Non avevo dimenticato ed ero stato riluttante ad accettare solo perché in realtà non ho ancora dato un colpo alla tua proposta, ma sono molto fiducioso che la tua risposta abbia tutto ciò di cui ho bisogno.
Tartaruga
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.