Une Comande bien pratique... (tri simple)

Résolu/Fermé
aspitan-tux - 22 mai 2013 à 13:34
 aspirantux - 1 sept. 2013 à 00:02
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 :).
A voir également:

5 réponses

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 418
22 mai 2013 à 17:41
$ 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
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 418
22 mai 2013 à 15:47
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
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
22 mai 2013 à 15:55
hello
essayer
for F in *; do D=${F%.mp3}; D=${D##* }; mkdir -p $D; mv "$F" $D/${F%% *}.mp3 ; done
2
Merci ;) ça marche ;)
0
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Aspirantuxx
22 mai 2013 à 23:59
Impeccable merci bcp :)
0