Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 20/03/2007, à 14:36

tekman54000

[Resolu et fonctionnel] Script TCSH mp32ogg Recalcitrant...

Salut a tous,

Je suis en train de me faire un petit script pour permettre a mp32ogg d'encoder des fichiers dans un repertoire contenant lui meme des sous repertoires...Voici le code :

#! /bin/tcsh

if($#argv > 1)then
    echo "Erreur verifiez la syntaxe $0 [repertoire]"
    exit (1)
endif
echo $1
set nbr = `ls -1 "$1" | grep mp3 | wc -l`
echo $nbr
if ($nbr != 0) then
	echo "Encodage des fichiers dans le repertoire courant en cours..."
	mp32ogg --delete --quality=4 "$1"*.mp3
	echo "Fin de l'encodage dans le repertoire courant..."
	else 
		echo "Pas de fichiers mp3 trouvés..."
endif

#echo "Recherche des fichiers a encoder dans les sous-repertoires de $1..."
set sub = `ls $1`
set long = $#sub
set i = 1
set j = 0
while ($i<$long)
    	if(-d "$1$sub[$i]")then
		echo "Repertoire : $1$sub[$i]/ trouvé"
		`/home/aymeric/Scripts/mp32ogg_rec.csh $1$sub[$i]/ `
		#exit(0)
	endif
	@ i ++
end
exit(0)

Cependant lors de l'execution, le parcours est bien recursif seulement je me prends pleins de message d'erreur, voici la trace de l'execution dans mon home:

/home/aymeric/Fac/Home_Fac/Desktop/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L2/Desktop/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L2/EP_ue3.13/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L2/java/tp1/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L2/java/Tp2/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L2/java/tp3/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L2/java/TP6/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L2/java/TP7/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L2/java/TP8/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L2/java/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L2/Java2/TP1/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L2/Java2/TP11/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L2/Java2/TP2/etats/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L2/Java2/TP2/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L2/Java2/TP4/date/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L2/Java2/TP4/meteo/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L2/Java2/TP4/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L2/Java2/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L2/Langage/Tp1/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L2/Langage/Tp2/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L2/Langage/Tp3/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L2/Langage/Tp5/compteur/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L2/Langage/Tp5/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L2/Langage/Tp6/compteurs/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L2/Langage/Tp6/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L2/Langage/Tp7/ex1/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L2/Langage/Tp7/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L2/Langage/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L2/Projet/projetIUP/automates/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L2/Projet/projetIUP/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L2/Projet/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L2/SQL/tp1/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L2/SQL/TP2/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L2/SQL/TP3/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L2/SQL/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L2/TP/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L2/TP/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L2/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L3/AGAP/TP1/TP1/arbrebinaire/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L3/AGAP/TP1/TP1/calculatricePolonaise/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L3/AGAP/TP1/TP1/Images/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L3/AGAP/TP1/TP1/listecatalogue/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L3/AGAP/TP1/TP1/MTree/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L3/AGAP/TP1/TP1/StartFrame/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L3/AGAP/TP1/TP1/TP1/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L3/AGAP/TP1/TP1/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L3/AGAP/TP1/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L3/AGAP/TP2/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L3/AGAP/TP3/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L3/AGAP/TP4/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L3/AGAP/TP5/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L3/AGAP/TP6/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L3/AGAP/TP7/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L3/AGAP/TP8/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L3/AGAP/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L3/MPSI/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L3/SGBD/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L3/STR/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L3/Systeme/TP3/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L3/Systeme/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/L3/: Permission non accordée.
/home/aymeric/Fac/Home_Fac/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/CSH/EP/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/CSH/EP_ue3.13/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/CSH/TP1/qdsqd/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/CSH/TP1/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/CSH/TP2/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/CSH/TP3/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/CSH/TP8/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/CSH/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/CUP/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/java/LMI3.03/outils/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/java/LMI3.03/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/java/LMI3.12/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/java/LMI3.13/Session1/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/java/LMI3.13/Session2/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/java/LMI3.13/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/java/tp1/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/java/Tp2/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/java/TP3/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/java/TP4/chaines/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/java/TP4/chemin/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/java/TP4/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/java/TP5/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/java/TP6/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/java/TP8/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/java/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/Java2/Labyrinthe/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/Java2/TP1/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/Java2/TP10/flots/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/Java2/TP10/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/Java2/TP2/etats/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/Java2/TP2/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/Java2/TP3/etats/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/Java2/TP3/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/Java2/TP4/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/Java2/TP5/date/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/Java2/TP5/meteo/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/Java2/TP5/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/Java2/TP8/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/Java2/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/Langage/automate/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/Langage/Tp1/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/Langage/Tp2/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/Langage/Tp3/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/Langage/Tp5/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/Langage/Tp7/ex1/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/Langage/Tp7/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/Langage/Tp8/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/Langage/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/Projet/Eclipse/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/Projet/projetIUP/automates/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/Projet/projetIUP/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/Projet/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/SQL/: Permission non accordée.
/home/aymeric/Fac/Prog/L2/: Permission non accordée.
/home/aymeric/Fac/Prog/: Permission non accordée.
/home/aymeric/Fac/projet/doc/index-files/: Permission non accordée.
/home/aymeric/Fac/projet/doc/projetIUP/automates/class-use/: Permission non accordée.
/home/aymeric/Fac/projet/doc/projetIUP/automates/: Permission non accordée.
/home/aymeric/Fac/projet/doc/projetIUP/: Permission non accordée.
/home/aymeric/Fac/projet/doc/resources/: Permission non accordée.
/home/aymeric/Fac/projet/doc/: Permission non accordée.
/home/aymeric/Fac/projet/: Permission non accordée.
/home/aymeric/Fac/projetIUP/assembleur/jar/: Permission non accordée.
/home/aymeric/Fac/projetIUP/assembleur/: Permission non accordée.
/home/aymeric/Fac/projetIUP/automates/: Permission non accordée.
/home/aymeric/Fac/projetIUP/jad/: Permission non accordée.
/home/aymeric/Fac/projetIUP/simulateur/batch/: Permission non accordée.
/home/aymeric/Fac/projetIUP/simulateur/graphique/: Permission non accordée.
/home/aymeric/Fac/projetIUP/simulateur/micro/save/: Permission non accordée.
/home/aymeric/Fac/projetIUP/simulateur/micro/: Permission non accordée.
/home/aymeric/Fac/projetIUP/simulateur/scripts/: Permission non accordée.
/home/aymeric/Fac/projetIUP/simulateur/: Permission non accordée.
/home/aymeric/Fac/projetIUP/testMot16/: Permission non accordée.
/home/aymeric/Fac/projetIUP/: Permission non accordée.
/home/aymeric/Fac/: Permission non accordée.
Repertoire : /home/aymeric/Free/ trouvé
/home/aymeric/Free/: Permission non accordée.
Repertoire : /home/aymeric/lyrics/ trouvé
/home/aymeric/lyrics/: Permission non accordée.
Repertoire : /home/aymeric/Musique/ trouvé
/home/aymeric/Musique/: Permission non accordée.
Repertoire : /home/aymeric/NatureOne-2006/ trouvé
/home/aymeric/NatureOne-2006/: Permission non accordée.
Repertoire : /home/aymeric/Pc_Bureau/ trouvé
/home/aymeric/Pc_Bureau/: Permission non accordée.
Repertoire : /home/aymeric/Perso/ trouvé
Unknown user: WRL0001.tmp.
/home/aymeric/Perso/Aymeric/: Permission non accordée.
/home/aymeric/Perso/: Permission non accordée.
Repertoire : /home/aymeric/Projects/ trouvé
/home/aymeric/Projects/: Permission non accordée.
Repertoire : /home/aymeric/Scripts/ trouvé
mp32ogg: No match.
/home/aymeric/Scripts/: Permission non accordée.
Repertoire : /home/aymeric/System/ trouvé
/home/aymeric/System/CG/: Permission non accordée.
/home/aymeric/System/Compiz/: Permission non accordée.
/home/aymeric/System/SIP/: Permission non accordée.
/home/aymeric/System/: Permission non accordée.

j'ai cherché dans les forums la source d'un tel probleme...et j'ai vu uniquement que cela pouvait provenir du fait que le script ne soit pas executable or apres un ls -l :

-rwxrwxrwx 1 aymeric aymeric 718 2007-03-20 13:13 mp32ogg_rec.csh

Donc je suis un peu paumé...quelqu'un aurait une idée??

Dernière modification par tekman54000 (Le 20/03/2007, à 22:26)


------------------------------------------------------------------------------------------------
"The day Microsoft makes something that doesn’t suck is probably the day they start making vacuum cleaners"  Ernst Jan Plugge
------------------------------------------------------------------------------------------------

Hors ligne

#2 Le 20/03/2007, à 19:55

tekman54000

Re : [Resolu et fonctionnel] Script TCSH mp32ogg Recalcitrant...

bon ben je me reponds a moi meme, j'ai changé toute la structure...Si cela interesse quelqu'un, voici mon script qui nécessite TCSH et mp32ogg

sudo aptitude install tcsh mp32ogg

. Le script permet d'encoder des MP3 dans toute une structure de dossier. Il suffit de donner la racine des dossiers a encoder, le script les parcours et encode tous les fichiers mp3 existants.

#! /bin/tcsh 
if($#argv > 1)then
    echo "Erreur verifiez la syntaxe $0 repertoire"
    exit (1)
endif

echo "Recherche des fichiers a encoder dans les sous-repertoires de $1"
ls -R $1 |grep ./ > /tmp/mp32ogg_rec.log
set long = `less /tmp/mp32ogg_rec.log | wc -l`
set i = 0
set j = 0
while ($i <= $long[1])
	set nom =  `head -n $i /tmp/mp32ogg_rec.log | tail -n 1`
	set doss = `echo $nom | sed 's/.\{1\}$//g'`
	set nbr = `ls "$doss/" | grep mp3 | wc -l`
	if ($nbr != 0) then
		echo "Encodage des fichiers dans le repertoire $doss"
		cd "$doss/"
	 	`mp32ogg --delete --quality=4 *.mp3`	
		echo "Fin de l'encodage dans le repertoire $doss"
		@ j ++
	endif
    @ i ++
end
echo "Fin de l'encodage, $j dossiers on été modifiés."
rm -f /tmp/m32ogg_rec.log
exit(0)

Si vous avez des suggestions smile

Dernière modification par tekman54000 (Le 20/03/2007, à 20:02)


------------------------------------------------------------------------------------------------
"The day Microsoft makes something that doesn’t suck is probably the day they start making vacuum cleaners"  Ernst Jan Plugge
------------------------------------------------------------------------------------------------

Hors ligne

#3 Le 20/03/2007, à 20:06

naholyr

Re : [Resolu et fonctionnel] Script TCSH mp32ogg Recalcitrant...

Tu ne pouvais pas faire plus simple avec find ?
Genre find /path/to/music -name *.mp3 -exec mp32ogg --delete --quality=4 {} \; ?

Dernière modification par naholyr (Le 20/03/2007, à 20:07)

Hors ligne

#4 Le 20/03/2007, à 21:06

tekman54000

Re : [Resolu et fonctionnel] Script TCSH mp32ogg Recalcitrant...

mouais mais j'aime pas find lol et je sais pas trop s'il gere le recursif

j'ai une nouvelle version avec test si il n'y a pas deja une version de oggenc qui tourne en fond.

#! /bin/tcsh 
set running = `ps -e |grep oggenc`
if ($#running != 0) then
	echo "Erreur une instance de oggenc est deja en cours d'execution..."
	exit(2)
endif
if($#argv != 1)then
    echo "Erreur verifiez la syntaxe $0 repertoire"
    exit (1)
endif

echo "Recherche des fichiers a encoder dans les sous-repertoires de $1"
ls -R $1 |grep ./ > /tmp/mp32ogg_rec.log
set long = `less /tmp/mp32ogg_rec.log | wc -l`
set i = 0
set j = 0
while ($i <= $long[1])
	set nom =  `head -n $i /tmp/mp32ogg_rec.log | tail -n 1`
	set doss = `echo $nom | sed 's/.\{1\}$//g'`
	set nbr = `ls "$doss/" | grep mp3 | wc -l`
	if ($nbr != 0) then
		echo "Encodage des fichiers dans le repertoire $doss"
		cd "$doss/"
	 	`mp32ogg --delete --quality=4 *.mp3`	
		echo "Fin de l'encodage dans le repertoire $doss"
		@ j ++
	endif
    @ i ++
end
echo "Fin de l'encodage, $j dossiers on été modifiés."
rm -f /tmp/m32ogg_rec.log
exit(0)

------------------------------------------------------------------------------------------------
"The day Microsoft makes something that doesn’t suck is probably the day they start making vacuum cleaners"  Ernst Jan Plugge
------------------------------------------------------------------------------------------------

Hors ligne

#5 Le 20/03/2007, à 22:28

tekman54000

Re : [Resolu et fonctionnel] Script TCSH mp32ogg Recalcitrant...

naholyr a écrit :

Tu ne pouvais pas faire plus simple avec find ?
Genre find /path/to/music -name *.mp3 -exec mp32ogg --delete --quality=4 {} \; ?

Je viens de tester find mais en fait c pas terrible parce qu'il me file le chemin complet vers le mp3. et mp32ogg si tu lui donne a manger ca il va mettre le .ogg dans le repertoire ou tu a lancé ton script...mais sinon c vrai que c'etait pas mal, je vais peut etre me resigner a utiliser find lol


------------------------------------------------------------------------------------------------
"The day Microsoft makes something that doesn’t suck is probably the day they start making vacuum cleaners"  Ernst Jan Plugge
------------------------------------------------------------------------------------------------

Hors ligne

#6 Le 21/03/2007, à 00:00

naholyr

Re : [Resolu et fonctionnel] Script TCSH mp32ogg Recalcitrant...

En effet du coup il faut quand-même passer par un script, par exemple convert_mp3_ogg :

#!/bin/bash
d="$(pwd)" # conserve le dossier de départ
cd "$(dirname "$1")" # se déplace dans le dossier du fichier à convertir
mp32ogg --delete --quality=4 "$(basename "$1")" # conversion
cd "$d" # retourn au dossier de départ

Puis simplement find "$1" -name *.mp3 -exec convert_mp3_ogg "{}" \;

Hors ligne

#7 Le 21/03/2007, à 00:14

tekman54000

Re : [Resolu et fonctionnel] Script TCSH mp32ogg Recalcitrant...

ouip mais la je viens de faire un test avec set k = `find $1 -name *.mp3` et j'ai un find : no match alors que dans le terminal tout se passe bien... je me demande si c pas une erreur avec tcsh...fin bref je vais voir ca


------------------------------------------------------------------------------------------------
"The day Microsoft makes something that doesn’t suck is probably the day they start making vacuum cleaners"  Ernst Jan Plugge
------------------------------------------------------------------------------------------------

Hors ligne