Une Comande bien pratique... (tri simple)

Résolu
aspitan-tux -  
 aspirantux -
Bonjours tout le monde,

Alors voilà, je suis entrain de remettre en forme ma bibliothèque musicale. Et le fait est que j'ai un dossier avec dedans un petit millier de pistes (et uniquement ces fichiers la) toutes sous la forme :

[nom du morceau][espace][-][espace][nom de l'artiste][.mp3]

Et j'aimerais les classer par artistes c'est a dire mettre toutes celle de l'artiste Xxx dans le dossier Xxx toutes celles de l'artiste Yyy dans le dossier Yyy et ainsi de suite.

La procédure devrait ressembler à :
-Tant que dossier contient un fichier répéter :
-Couper tout les fichiers sous la forme "*- nom du premier artiste"
-coller la sélection dans dossier "nom du premier artiste"
-fin tant que.

Bon c'est une idée bien sur je fais ça avec mes reste d'algorithmique de première année d'ingénieur. Je sais que c'est réalisable mais je sais vraiment pas comment m'y prendre vu que je suis tout nouveau sur linux (Kubuntu).

Toute la subtilité est que la ligne de commande que je vais rentrer fasse : prendre le premier morceau regarder et retenir de qui il est, sélectionner tout les morceaux de cet artiste, les couper et les coller dans un dossier du nom de l'artiste.

Et ça je sais pas faire... Je demande pas forcément une explication, juste la ligne de code qui fait ça, je me ferais un plaisir de chercher tout seul comment la commande marche. Bien sur si vous m'expliquez en même temps alors c'est parfait aussi ! :p

Petit bonus : qu'est ce qu'il faut rajouter a cette commande pour qu'une fois qu'elle a copier tout les morceaux d'un artiste dans le dossier correspondant elle renomme le fichier :
[nom du morceau][espace][-][espace][nom de l'artiste][.mp3]

En quelque chose de la forme :
[nom du morceau][.mp3] ?

Voilà en espérant avoir de vos nouvelles =) bonne soirée !

Ps: je suis vraiment nouveau donc si c'est plus compliqué que de copier/coller bettement la commande dans la konsole, il va me falloir quelque explications quand même :).

5 réponses

  1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    $ ls -1
    Baby When The Light - David Guetta.flac
    Badlands - Bruce Springsteen.flac
    Bang Bang - Dub Inc.flac
    Basic Space - The XX.flac
    Beat It - Michael Jackson.flac
    Beautiful Emilie - Keziah Jones.flac
    Before You Accuse Me - Eric Clapton.flac
    Be My Somebody - Norah Jones.flac
    Better Days - Bruce Springsteen.flac
    Big Jet Plane - Angus & Julia Stone.flac
    Billie Jean - Michael Jackson.flac
    Bitter Sweet Symphony - The Verve.flac
    Black Dog - Led Zepplin.flac
    Black or White - Michael Jackson.flac
    Blame It On The Girls - Mika.flac
    Blessed To Be A Witness - Ben Harper.flac
    Blinded By Love - The Rolling Stones.flac
    Blood Brothers - Bruce Springsteen.flac
    Blowin' In The Wind - Bob Dylan.flac
    Boom Boom Pow - The Black Eyed Peas.flac
    Borken - Norah Jones.flac
    Born In The USA - Bruce Springsteen.flac
    Boulevard Of Broken Dreams - Green Day.flac
    Bouquet De Nerfs - Noir Désir.flac
    Breath In - Yodelice.flac
    Breed - Nirvana.flac
    Breezeblocks - alt-J.flac
    Brigadier Sabari - Alpha Blondy.flac
    Brilliant Disguise - Bruce Springsteen.flac
    
    
    
    $ for F in *.flac ; do Name="${F% - *}" ; Suff="${F#*- }" ; Rep="${Suff%.flac}" ; mkdir -p "${Rep}" ; mv -v "${F}" "${Rep}/${Name}.flac" ; done
    
    «Baby When The Light - David Guetta.flac» -> «David Guetta/Baby When The Light.flac»
    «Badlands - Bruce Springsteen.flac» -> «Bruce Springsteen/Badlands.flac»
    «Bang Bang - Dub Inc.flac» -> «Dub Inc/Bang Bang.flac»
    «Basic Space - The XX.flac» -> «The XX/Basic Space.flac»
    «Beat It - Michael Jackson.flac» -> «Michael Jackson/Beat It.flac»
    «Beautiful Emilie - Keziah Jones.flac» -> «Keziah Jones/Beautiful Emilie.flac»
    «Before You Accuse Me - Eric Clapton.flac» -> «Eric Clapton/Before You Accuse Me.flac»
    «Be My Somebody - Norah Jones.flac» -> «Norah Jones/Be My Somebody.flac»
    «Better Days - Bruce Springsteen.flac» -> «Bruce Springsteen/Better Days.flac»
    «Big Jet Plane - Angus & Julia Stone.flac» -> «Angus & Julia Stone/Big Jet Plane.flac»
    «Billie Jean - Michael Jackson.flac» -> «Michael Jackson/Billie Jean.flac»
    «Bitter Sweet Symphony - The Verve.flac» -> «The Verve/Bitter Sweet Symphony.flac»
    «Black Dog - Led Zepplin.flac» -> «Led Zepplin/Black Dog.flac»
    «Black or White - Michael Jackson.flac» -> «Michael Jackson/Black or White.flac»
    «Blame It On The Girls - Mika.flac» -> «Mika/Blame It On The Girls.flac»
    «Blessed To Be A Witness - Ben Harper.flac» -> «Ben Harper/Blessed To Be A Witness.flac»
    «Blinded By Love - The Rolling Stones.flac» -> «The Rolling Stones/Blinded By Love.flac»
    «Blood Brothers - Bruce Springsteen.flac» -> «Bruce Springsteen/Blood Brothers.flac»
    «Blowin' In The Wind - Bob Dylan.flac» -> «Bob Dylan/Blowin' In The Wind.flac»
    «Boom Boom Pow - The Black Eyed Peas.flac» -> «The Black Eyed Peas/Boom Boom Pow.flac»
    «Borken - Norah Jones.flac» -> «Norah Jones/Borken.flac»
    «Born In The USA - Bruce Springsteen.flac» -> «Bruce Springsteen/Born In The USA.flac»
    «Boulevard Of Broken Dreams - Green Day.flac» -> «Green Day/Boulevard Of Broken Dreams.flac»
    «Bouquet De Nerfs - Noir Désir.flac» -> «Noir Désir/Bouquet De Nerfs.flac»
    «Breath In - Yodelice.flac» -> «Yodelice/Breath In.flac»
    «Breed - Nirvana.flac» -> «Nirvana/Breed.flac»
    «Breezeblocks - alt-J.flac» -> «alt-J/Breezeblocks.flac»
    «Brigadier Sabari - Alpha Blondy.flac» -> «Alpha Blondy/Brigadier Sabari.flac»
    «Brilliant Disguise - Bruce Springsteen.flac» -> «Bruce Springsteen/Brilliant Disguise.flac»
    
    
    $ ls -R
    .:
    Alpha Blondy  Angus & Julia Stone  Bob Dylan          David Guetta  Eric Clapton  Keziah Jones  Michael Jackson  Nirvana     Norah Jones          The Rolling Stones  The XX
    alt-J         Ben Harper           Bruce Springsteen  Dub Inc       Green Day     Led Zepplin   Mika             Noir Désir  The Black Eyed Peas  The Verve           Yodelice
    
    ./Alpha Blondy:
    Brigadier Sabari.flac
    
    ./alt-J:
    Breezeblocks.flac
    
    ./Angus & Julia Stone:
    Big Jet Plane.flac
    
    ./Ben Harper:
    Blessed To Be A Witness.flac
    
    ./Bob Dylan:
    Blowin' In The Wind.flac
    
    ./Bruce Springsteen:
    Badlands.flac  Better Days.flac  Blood Brothers.flac  Born In The USA.flac  Brilliant Disguise.flac
    
    ./David Guetta:
    Baby When The Light.flac
    
    ./Dub Inc:
    Bang Bang.flac
    
    ./Eric Clapton:
    Before You Accuse Me.flac
    
    ./Green Day:
    Boulevard Of Broken Dreams.flac
    
    ./Keziah Jones:
    Beautiful Emilie.flac
    
    ./Led Zepplin:
    Black Dog.flac
    
    ./Michael Jackson:
    Beat It.flac  Billie Jean.flac  Black or White.flac
    
    ./Mika:
    Blame It On The Girls.flac
    
    ./Nirvana:
    Breed.flac
    
    ./Noir Désir:
    Bouquet De Nerfs.flac
    
    ./Norah Jones:
    Be My Somebody.flac  Borken.flac
    
    ./The Black Eyed Peas:
    Boom Boom Pow.flac
    
    ./The Rolling Stones:
    Blinded By Love.flac
    
    ./The Verve:
    Bitter Sweet Symphony.flac
    
    ./The XX:
    Basic Space.flac
    
    ./Yodelice:
    Breath In.flac
    
    $ 


    :-))
    2
  2. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    Salut,

    [nom du morceau][espace][-][espace][nom de l'artiste][.mp3]
    est-ce que les "[nom du morceau]" et "[nom de l'artiste]" sont susceptibles de contenir eux aussi des espaces ?

    Peut-on avoir une idée du contenu de ton répertoire (ls -1) d'une petite 20aine de titres histoire de voir et tester et ne pas avoir à se créer de faux fichiers à la main ?
    2
  3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    essayer
    for F in *; do D=${F%.mp3}; D=${D##* }; mkdir -p $D; mv "$F" $D/${F%% *}.mp3 ; done
    
    2
    1. aspirantux
       
      Merci ;) ça marche ;)
      0
  4. foo
     
    Alors oui il y a des espaces malheureusement ...

    Charleston - Tarmac.flac
    Chérie Coco - Magic System.flac
    Cher Oubli - Tarmac.flac
    Chienne De Vie - Fatal Bazooka.flac
    Chin Up, Cheer Up - Ryan Adams.flac
    Chupee - Cocoon.flac
    Church On Time - Ben Harper.flac
    Clandestino - Manu Chao.flac
    Club Can't Handle Me - Flo Rida.flac
    Cocaine - Eric Clapton.flac
    Cold Water - Damien Rice.flac
    Come As You Are - Nirvana.flac
    Comme On A Dit - Louise Attaque.flac
    Comme Un Boomerang - Serge Gainsbourg.flac
    Complainte Gallaise - Tri Yann.flac
    Conquest Of Paradise - Vangelis.flac
    Continetal Drift - The Rolling Stones.flac
    Could You Be Loved - Bob Marley.flac
    Courez Courez - Orelsan.flac
    Crachez Nos Souhaits - Louise Attaque.flac
    Crank That - Soulja Boy.flac
    Creep - Radiohead.flac
    Crucify - Tori Amos.flac
    Crucify Your Mind - Rodriguez.flac
    Cry For You - September.flac
    Crystalised - The XX.flac
    D'Amour En Amour - Louise Attaque.flac
    Dance Me To The End Of Love - Leonard Cohen.flac
    Des Armes - Noir Désir.flac
    La Ballade De Basse - Louise Attaque.flac
    La Ballade Des Gens Qui Sont Né Quelque Part - Tarmac.flac
    La Brune - Louise Attaque.flac
    L'Agriculteur - Ridan.flac
    Le Chemin - Kyo.flac
    Les champs de roses - Danakil.flac
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question