Résolu le 13-03-19 Traiter des fichiers dans des sous-dossiers

Questions concernant les lignes de commandes
Avatar du membre
cyrille
Administrateur du site
Messages : 12437
Enregistré le : mar. 19 sept. 2017 08:49
Localisation : Nowhere
Contact :

Re: Traiter des fichiers dans des sous-dossiers

Message par cyrille »

Dernier message de la page précédente :

une dernière info

Code : Tout sélectionner

man zenity
tu devrais pouvoir te bidouiller un truc "graphique" assez facilement avec choix du répertoire et option d'encodage ;)
?séuqartéd sel ruoP / sécnoféd sel ruoP / sreiruréB sel ruoP / ?étéicos elleuQ

https://crust.ovh

Avatar du membre
cyrille
Administrateur du site
Messages : 12437
Enregistré le : mar. 19 sept. 2017 08:49
Localisation : Nowhere
Contact :

Re: Traiter des fichiers dans des sous-dossiers

Message par cyrille »

Et oui pas d'espace dans les noms de dossiers
désolé plus dispo avant ce soir ;)
mais en cherchant un peu tu vas trouver ;) (fonction read de bash... entre autres)
?séuqartéd sel ruoP / sécnoféd sel ruoP / sreiruréB sel ruoP / ?étéicos elleuQ

https://crust.ovh

Avatar du membre
cyrille
Administrateur du site
Messages : 12437
Enregistré le : mar. 19 sept. 2017 08:49
Localisation : Nowhere
Contact :

Re: Traiter des fichiers dans des sous-dossiers

Message par cyrille »

Bsr,

à tête plus reposée,
je te propose cela

Code : Tout sélectionner

find . -depth -name '*.wav' -execdir bash -c '[[ -f $0 ]] &&  flac -7 --replay-gain "$0" ' {} \;
A tester, mais à mon avis ça doit passer

en gros
1/ Chercher depuis le répertoire courant (.)
2/ -depth : de façon récursive
3/ les fichiers en wav
4/ eliminer les dossiers de la recherche [[ -f $0 ]]
4/ puis executer la commande bash flac -7 --replay-gain "$0" sur les fichiers qui restent
?séuqartéd sel ruoP / sécnoféd sel ruoP / sreiruréB sel ruoP / ?étéicos elleuQ

https://crust.ovh

Avatar du membre
Nerva
Messages : 376
Enregistré le : lun. 4 mars 2019 18:48

Re: Traiter des fichiers dans des sous-dossiers

Message par Nerva »

Oui ça fonctionne parfaitement. Plus qu'à mettre tout ça dans un sh. :)
Linux Mint 21.3 Virginia | Cinnamon 6.0.4

Avatar du membre
cyrille
Administrateur du site
Messages : 12437
Enregistré le : mar. 19 sept. 2017 08:49
Localisation : Nowhere
Contact :

Re: Traiter des fichiers dans des sous-dossiers

Message par cyrille »

pense à passer le thread en resolu
?séuqartéd sel ruoP / sécnoféd sel ruoP / sreiruréB sel ruoP / ?étéicos elleuQ

https://crust.ovh

Avatar du membre
arghlub
Administrateur du site
Messages : 10421
Enregistré le : dim. 21 mai 2017 08:19
Localisation : Provence
Contact :

Re: Traiter des fichiers dans des sous-dossiers

Message par arghlub »

Comme le dit cyrille, merci de mettre un attribut "Résolu" au sujet si tout est ok pour toi : voir tuto ici ;)
Tour1 (custom)CM MSI Z270 M3 | CPU Intel I7-7700K | CG Nvidia GTX 1080 | RAM 16Go | tripleBoot : Debian 11 | MXlinux 21 | LMint 19.3 | XFCE
Tour2 (custom)CM Gigabyte | CPU AMD Athlon 5200+ | CG Nvidia GTX 560 | RAM 6Go | FreeBSD 12.1 XFCE
Portable1 MSI GF75 Thin 9SC | CPU Intel I7-9750H | CG Nvidia GTX 1650 | RAM 32Go | dualBoot : LMint 20.2 | MXlinux 21 | XFCE
Portable2 MacBook Air A1466 (2015) | CPU Intel I5-5250U | CG Intel HD Graphics 6000 | RAM 8Go | dualBoot : macOS Sierra | MXlinux 21 XFCE
─────( pour une informatique libre ! -membre en stand-by de l' April.org────────────────

Avatar du membre
cyrille
Administrateur du site
Messages : 12437
Enregistré le : mar. 19 sept. 2017 08:49
Localisation : Nowhere
Contact :

Re: Traiter des fichiers dans des sous-dossiers

Message par cyrille »

Version graphique
pas testé mais ça devrait le faire

Code : Tout sélectionner

#!/bin/sh
#
# Test de l'existence du programme ZENITY 
if which zenity > /dev/null; then
    echo "zenity already install. Fine."
else
    echo "zenity does not exist. Go for the installation"
    su -c "apt-get install zenity"
fi

dossier=`zenity --title="Choisir un dossier" --file-selection --directory` ; 
find $dossier -depth -name '*.wav' -execdir bash -c '[[ -f $0 ]] &&  flac -7 --replay-gain "$0" ' {} \;
?séuqartéd sel ruoP / sécnoféd sel ruoP / sreiruréB sel ruoP / ?étéicos elleuQ

https://crust.ovh

Avatar du membre
Nerva
Messages : 376
Enregistré le : lun. 4 mars 2019 18:48

Re: Traiter des fichiers dans des sous-dossiers

Message par Nerva »

Eh bien ça fonctionne parfaitement et c'est encore plus souple de pouvoir choisir le dossier source. :P J'ai juste ce message qui s'affiche avant l'exécution :

Code : Tout sélectionner

Gtk-Message: 10:02:27.950: GtkDialog mapped without a transient parent. This is discouraged.
Merci beaucoup. ;)
Linux Mint 21.3 Virginia | Cinnamon 6.0.4

Avatar du membre
Nerva
Messages : 376
Enregistré le : lun. 4 mars 2019 18:48

Re: Traiter des fichiers dans des sous-dossiers

Message par Nerva »

J'ai parlé trop vite. Ca ne fonctionne pas lorsque les noms de dossiers comprennent des espaces. :cry:
Linux Mint 21.3 Virginia | Cinnamon 6.0.4

Avatar du membre
cyrille
Administrateur du site
Messages : 12437
Enregistré le : mar. 19 sept. 2017 08:49
Localisation : Nowhere
Contact :

Re: Traiter des fichiers dans des sous-dossiers

Message par cyrille »

Fais un script pour virer les espaces de tes noms de dossier, tu seras tranquille et résoudras les ps à la base
?séuqartéd sel ruoP / sécnoféd sel ruoP / sreiruréB sel ruoP / ?étéicos elleuQ

https://crust.ovh

Avatar du membre
cyrille
Administrateur du site
Messages : 12437
Enregistré le : mar. 19 sept. 2017 08:49
Localisation : Nowhere
Contact :

Re: Traiter des fichiers dans des sous-dossiers

Message par cyrille »

Etonnant
Chez moi j'ai fait des tests (sans zenity) avec une arborescence avec des blancs dans les noms des répertoires et ça passait...
?séuqartéd sel ruoP / sécnoféd sel ruoP / sreiruréB sel ruoP / ?étéicos elleuQ

https://crust.ovh

Répondre