Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/04/2007, 14h06   #1
Nouveau Membre du Club
 
Inscription : avril 2005
Messages : 115
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 115
Points : 36
Points : 36
Par défaut Nommage de fichier

Bon va falloire que j explique bien ce que je veux faire .
je suis en train de faire un petit prog pour nommer des fichiers de musique.
bon ca c fait
Donc ils sont tous dans un rep de nomme "Musique"
et ladans il les repertoires dont leurs noms sont les noms des artistes.
et dans ces repertoires il y a des sous repertoires qui portent le nom des albums de l artiste.
j amerai faire de tel sorte que le nom du fichier mp3 porte le
le nom de l artiste-nom de l album-01 ----n-nom du fichier
et j arrive pas a bien ecrire l algo
J espere que j ai ete compris dans l ensemble
si c pas le cas n hesite pas a demander d autres infs sup
nestam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2007, 22h26   #2
Membre expérimenté
 
Avatar de BlaireauOne
 
Inscription : mars 2007
Messages : 469
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : mars 2007
Messages : 469
Points : 576
Points : 576
Citation:
Envoyé par nestam
j amerai faire de tel sorte que le nom du fichier mp3 porte le
le nom de l artiste-nom de l album-01 ----n-nom du fichier
et j arrive pas a bien ecrire l algo

Avec une question alambiquée, quelques exemples auraient été les bienvenus

Si j'ai bien compris ...

Script :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
cd musique
find -type d > Liste_rep
while read RepArtiste
do
	ls -1 "$RepArtiste"/*.mp3 1>Liste_mp3 2>/dev/null
	while read track
	do
		repert=$(dirname "$track" | cut -c3-)
		morceau=$(basename "$track")
		echo "* ./${repert}/$morceau --> ./${repert}/${repert}---$morceau"
		#
		# Enlever la mise en commentaire si OK
		# mv "./${repert}/$morceau" "./${repert}/${repert}---$morceau"
	done < Liste_mp3
done < Liste_rep
rm Liste_mp3 Liste_rep
http://man.developpez.com/

Résultat :

* ./Beatles/Let it be.mp3 --> ./Beatles/Beatles---Let it be.mp3
* ./Beatles/Yello submarine.mp3 --> ./Beatles/Beatles---Yello submarine.mp3
* ./Led Zeppelin/Stairway to heaven.mp3 --> ./Led Zeppelin/Led Zeppelin---Stairway to heaven.mp3
* ./queen/innuendo.mp3 --> ./queen/queen---innuendo.mp3
BlaireauOne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2007, 23h25   #3
Nouveau Membre du Club
 
Inscription : avril 2005
Messages : 115
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 115
Points : 36
Points : 36
ce script ne passe pas parce qu il y a un message d erreur
je ne sais pas si c est le fait que j utilise cygwin ou pas.
le message d erreur est le suivant
Code :
1
2
3
:No such file or directory: Liste_rep
./ListeMusique.sh: Line 14: syntax error unexpected token 'done'
/ListeMusique.sh: line 14:`<Liste_mp3
et pourtant tout est ok
je ne sais pas pourquoi ?
nestam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2007, 08h22   #4
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 546
Détails du profil
Informations personnelles :
Nom : Homme francois
Âge : 35
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juillet 2006
Messages : 3 546
Points : 7 776
Points : 7 776
ajoute la verification de LIST_REP (teste si il existe ET est plus grand que 0 octets) avant de lancer le reste.

déjà tu veras si il est bien créer d'une part et bien rempli d'autre part.
frp31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2007, 12h15   #5
Membre expérimenté
 
Avatar de BlaireauOne
 
Inscription : mars 2007
Messages : 469
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : mars 2007
Messages : 469
Points : 576
Points : 576
Citation:
Envoyé par nestam
Code :
1
2
3
:No such file or directory: Liste_rep
./ListeMusique.sh: Line 14: syntax error unexpected token 'done'
/ListeMusique.sh: line 14:`<Liste_mp3
et pourtant tout est ok
je ne sais pas pourquoi ?

Erreur de syntaxe, semble-t-il, dans ton script.
Essaye de debugger en insérant la commande set -x en debut de script.
Si tu ne trouves pas, envoie ton code
BlaireauOne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/04/2007, 16h27   #6
Nouveau Membre du Club
 
Inscription : avril 2005
Messages : 115
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 115
Points : 36
Points : 36
voici l erreur
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 ./ListeMaMusique.sh: line 2: set: -
 
: invalid option
set: usage: set [--abefhkmnptuvxBCHP] [-o option] [arg ...]
 
./ListeMaMusique.sh: line 3: cd: /home/kaneam/Tiken-Jah-Fakoly
 
: No such file or directory
./ListeMaMusique.sh: line 4: Liste_rep
 
: No such file or directory
./ListeMaMusique.sh: line 15: syntax error near unexpected token `done'
 
./ListeMaMusique.sh: line 15: `	done < Liste_mp3
'
nestam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/04/2007, 18h45   #7
Membre expérimenté
 
Avatar de BlaireauOne
 
Inscription : mars 2007
Messages : 469
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : mars 2007
Messages : 469
Points : 576
Points : 576
Citation:
Envoyé par nestam
voici l erreur
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 ./ListeMaMusique.sh: line 2: set: -
: invalid option
set: usage: set [--abefhkmnptuvxBCHP] [-o option] [arg ...]

./ListeMaMusique.sh: line 3: cd: /home/kaneam/Tiken-Jah-Fakoly

: No such file or directory
./ListeMaMusique.sh: line 4: Liste_rep

: No such file or directory
./ListeMaMusique.sh: line 15: syntax error near unexpected token `done'

./ListeMaMusique.sh: line 15: `	done < Liste_mp3
'

Dans la ligne n° 2, tu as mis quelque chose qui n'est pas set -x


Donc ils sont tous dans un rep de nomme "Musique" dixit toi-même.
Aussi comment ce fait-il que que l'on trouve /home/kaneam/Tiken-Jah-Fakoly dans Liste_rep
BlaireauOne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2007, 16h14   #8
Nouveau Membre du Club
 
Inscription : avril 2005
Messages : 115
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 115
Points : 36
Points : 36
oui c est vrai que dans mon premier post j ai dit qu il etait tous dans un rep nommé Musique
mais je ne vais tester mon script qu avec une partie et non qu avec toute ma musqiue .
si ça marche je n ai qu a remplacer le nom du rep et puis c est bon
youpi.
l essentiel est que ce repertoire existe et se situe et l endroit nomme dans le script.
Et pour le set -x je te renvoie le script tel que je l ai ecrit
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/bin/bash
set -x
cd /home/kaneam/Tiken-Jah-Fakoly
find -type d >Liste_rep
while read RepArtiste
do
	ls -1 "$RepArtiste"/*.mp3 2>/dev/null
	while read track
	do
		repert=$(dirname "$track" | cut -c3-)
		morceau=$(basename "$track")
		echo "* ./${repert}/$morceau --> ./${repert}/${repert} ---$morceau"
		#
		#mv "* ./${repert}/$morceau" "./${repert}/${repert}---$morceau"
	done <Liste_mp3
done < Liste_rep
rm Liste_mp3 Liste_rep
nestam est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h18.


 
 
 
 
Partenaires

Hébergement Web