Dernier message de la page précédente :
Fichier test.sh créé avec EditPadPro sous Wine.
Traiter des fichiers dans des sous-dossiers
- arghlub
- Administrateur du site
- Messages : 11560
- Enregistré le : dim. 21 mai 2017 08:19
- Localisation : Provence
Re: Traiter des fichiers dans des sous-dossiers
Effectivement l'encodage des fichiers W$ n'est pas le même que sous Linux (notamment pour les retour-chariots)
Donc supprime ton script précédent et utilise xed par exemple pour recoller le script de cyrille :
Donc supprime ton script précédent et utilise xed par exemple pour recoller le script de cyrille :
Code : Tout sélectionner
xed test.shTour1 (custom) • CPU Intel I7-7700K | CG Nvidia GTX 1080 | RAM 16Go | tripleBoot : LMint 22.3 | Debian 12 | MX Linux | XFCE
Tour2 (custom) • CPU AMD Athlon 5200+ | CG Nvidia GTX 560 | RAM 6Go | FreeBSD XFCE
Portable1 • MSI GF75 Thin 9SC | CPU Intel I7-9750H | CG Nvidia GTX 1650 | RAM 32Go | dualBoot : LMint 22.1 | MX Linux | XFCE
Portable2 • MacBook Air A1466 | CPU Intel I5-5250U | CG Intel HD Graphics 6000 | RAM 8Go | dualBoot : macOS Sierra | MX Linux XFCE
─────( pour une informatique libre ! )─────
Tour2 (custom) • CPU AMD Athlon 5200+ | CG Nvidia GTX 560 | RAM 6Go | FreeBSD XFCE
Portable1 • MSI GF75 Thin 9SC | CPU Intel I7-9750H | CG Nvidia GTX 1650 | RAM 32Go | dualBoot : LMint 22.1 | MX Linux | XFCE
Portable2 • MacBook Air A1466 | CPU Intel I5-5250U | CG Intel HD Graphics 6000 | RAM 8Go | dualBoot : macOS Sierra | MX Linux XFCE
─────( pour une informatique libre ! )─────
Re: Traiter des fichiers dans des sous-dossiers
Il n'y a pas d'équivalent à EditPad Pro, ni sous Linux, ni sous Windows. Je ne savais pas que l'encodage pouvait jouer.
J'ai installé MousePad.
Mon fichier, en ayant suivi tes modifications :
Retour (pour info, j'ai dédoublé 3 fichiers tests en racine et dans un nouveau dossier) :
J'ai installé MousePad.
Mon fichier, en ayant suivi tes modifications :
Code : Tout sélectionner
#!/bin/sh
dossierDeTravail="/home/nerva/Audio/Conversion";
recursiveSearch() {
[ -r "$1" ] && [ -x "$1" ] || return 1 # Si on peut fouiller dans le dossier
[ "`ls "$1" | wc -l`" == "0" ] && return 0 # Si le dossier est vide
for file in "$1"/*; do
if [ -d "$file" ]; then
recursiveSearch "$file"
fi
echo "$file" flac -7 --replay-gain $file
done
}
recursiveSearch $dossierDeTravail
ls -lR /home/nerva/Audio/ConversionCode : Tout sélectionner
./test.sh: 7: [: 4: unexpected operator
/home/nerva/Audio/Conversion/Mix_07.wav flac -7 --replay-gain /home/nerva/Audio/Conversion/Mix_07.wav
/home/nerva/Audio/Conversion/Mix_10.wav flac -7 --replay-gain /home/nerva/Audio/Conversion/Mix_10.wav
/home/nerva/Audio/Conversion/Mix_11.wav flac -7 --replay-gain /home/nerva/Audio/Conversion/Mix_11.wav
./test.sh: 7: [: 3: unexpected operator
/home/nerva/Audio/Conversion/Nouveau dossier/Mix_07.wav flac -7 --replay-gain /home/nerva/Audio/Conversion/Nouveau dossier/Mix_07.wav
/home/nerva/Audio/Conversion/Nouveau dossier/Mix_10.wav flac -7 --replay-gain /home/nerva/Audio/Conversion/Nouveau dossier/Mix_10.wav
/home/nerva/Audio/Conversion/Nouveau dossier/Mix_11.wav flac -7 --replay-gain /home/nerva/Audio/Conversion/Nouveau dossier/Mix_11.wav
/home/nerva/Audio/Conversion/Nouveau dossier/Mix_11.wav flac -7 --replay-gain /home/nerva/Audio/Conversion/Nouveau dossier/Mix_11.wav
/home/nerva/Audio/Conversion:
total 110204
-rwx------ 1 nerva nerva 50996880 déc. 3 2015 Mix_07.wav
-rwx------ 1 nerva nerva 36166988 déc. 6 2015 Mix_10.wav
-rwx------ 1 nerva nerva 25671188 déc. 6 2015 Mix_11.wav
drwxrwxr-x 2 nerva nerva 4096 mars 11 10:26 'Nouveau dossier'
'/home/nerva/Audio/Conversion/Nouveau dossier':
total 110200
-rwx------ 1 nerva nerva 50996880 déc. 3 2015 Mix_07.wav
-rwx------ 1 nerva nerva 36166988 déc. 6 2015 Mix_10.wav
-rwx------ 1 nerva nerva 25671188 déc. 6 2015 Mix_11.wavLinux Mint 22.3 Zena | Mate
Re: Traiter des fichiers dans des sous-dossiers
Ca fonctionne pour le dossier Conversion mais ça ne traite pas les sous-dossiers qui ont un nom avec espace (j'ai testé un nom en un seul mot et ça marche). J'avais laissé comme nom Nouveau dossier et voilà le retour :
Code : Tout sélectionner
ERROR: can't open input file /home/nerva/Audio/Conversion/Nouveau: Aucun fichier ou dossier de ce typeLinux Mint 22.3 Zena | Mate
Re: Traiter des fichiers dans des sous-dossiers
Oui ça fonctionne parfaitement. Plus qu'à mettre tout ça dans un sh. 
Linux Mint 22.3 Zena | Mate
- arghlub
- Administrateur du site
- Messages : 11560
- Enregistré le : dim. 21 mai 2017 08:19
- Localisation : Provence
Re: Traiter des fichiers dans des sous-dossiers
Comme le dit cyrille, merci de mettre un attribut "Résolu" au sujet si tout est ok pour toi : voir tuto ici 
Tour1 (custom) • CPU Intel I7-7700K | CG Nvidia GTX 1080 | RAM 16Go | tripleBoot : LMint 22.3 | Debian 12 | MX Linux | XFCE
Tour2 (custom) • CPU AMD Athlon 5200+ | CG Nvidia GTX 560 | RAM 6Go | FreeBSD XFCE
Portable1 • MSI GF75 Thin 9SC | CPU Intel I7-9750H | CG Nvidia GTX 1650 | RAM 32Go | dualBoot : LMint 22.1 | MX Linux | XFCE
Portable2 • MacBook Air A1466 | CPU Intel I5-5250U | CG Intel HD Graphics 6000 | RAM 8Go | dualBoot : macOS Sierra | MX Linux XFCE
─────( pour une informatique libre ! )─────
Tour2 (custom) • CPU AMD Athlon 5200+ | CG Nvidia GTX 560 | RAM 6Go | FreeBSD XFCE
Portable1 • MSI GF75 Thin 9SC | CPU Intel I7-9750H | CG Nvidia GTX 1650 | RAM 32Go | dualBoot : LMint 22.1 | MX Linux | XFCE
Portable2 • MacBook Air A1466 | CPU Intel I5-5250U | CG Intel HD Graphics 6000 | RAM 8Go | dualBoot : macOS Sierra | MX Linux XFCE
─────( pour une informatique libre ! )─────
Re: Traiter des fichiers dans des sous-dossiers
Eh bien ça fonctionne parfaitement et c'est encore plus souple de pouvoir choisir le dossier source.
J'ai juste ce message qui s'affiche avant l'exécution :
Merci beaucoup. 
Code : Tout sélectionner
Gtk-Message: 10:02:27.950: GtkDialog mapped without a transient parent. This is discouraged.Linux Mint 22.3 Zena | Mate
Re: Traiter des fichiers dans des sous-dossiers
J'ai parlé trop vite. Ca ne fonctionne pas lorsque les noms de dossiers comprennent des espaces. 
Linux Mint 22.3 Zena | Mate
Re: Traiter des fichiers dans des sous-dossiers
Je ne comprends pas. Maintenant ceci fonctionne avec les espaces :
Pourtant c'est la même chose qu'avec Zenity.
Code : Tout sélectionner
find . -depth -name '*.wav' -execdir bash -c '[[ -f $0 ]] && flac -7 --replay-gain "$0" ' {} \;Linux Mint 22.3 Zena | Mate
Re: Traiter des fichiers dans des sous-dossiers
Et je comprends encore moins. Je viens de relancer ton script avec Zenity et maintenant il fonctionne !
Linux Mint 22.3 Zena | Mate
Re: Traiter des fichiers dans des sous-dossiers
Je suis déjà en train d'essayer de le compléter. Après conversion :
1) Suppression des fichiers WAV (devenus inutiles).
2) Déplacement des arborescences de /Audio/Conversion à /Musique/Albums.
Merci encore.
1) Suppression des fichiers WAV (devenus inutiles).
2) Déplacement des arborescences de /Audio/Conversion à /Musique/Albums.
Merci encore.
Linux Mint 22.3 Zena | Mate