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

Questions concernant les lignes de commandes
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 »

Dernier message de la page précédente :

Salut,
Nerva a écrit :
lun. 11 mars 2019 09:56
1) Comment faire pour qu'une fois la console lancée je puisse exécuter la commande directement sans me rendre préalablement dans Audio/Conversion ? J'ai essayé naïvement ça :
flac -7 --replay-gain Audio/Conversion *.wav
Mais c'est pas bon. :D
Tu as fait une erreur en saisissant le chemin vers les fichiers .wav (un / manquant et un espace en trop)
Je suppose que ton répertoire Audio/Conversion est dans ton /home.
Il faut saisir cette commande (en étant dans ton /home) :

Code : Tout sélectionner

flac -7 --replay-gain Audio/Conversion/*.wav
Ou mieux, tu mets le chemin absolu (pas en chemin relatif) pour pouvoir l'exécuter de n'importe où (et donc créer un lanceur facilement) :

Code : Tout sélectionner

flac -7 --replay-gain ~/Audio/Conversion/*.wav
(le tilde ~ est une abréviation pour «/home/TON_USER»)


[EDIT] oups grillé par cyrille ;)
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 : 12439
Enregistré le : mar. 19 sept. 2017 08:49
Localisation : Nowhere
Contact :

Re: Traiter des fichiers dans des sous-dossiers

Message par cyrille »

Essaie deja avec la commande echo $file et si tu y arrives passe ensuit à la phase 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 : 12439
Enregistré le : mar. 19 sept. 2017 08:49
Localisation : Nowhere
Contact :

Re: Traiter des fichiers dans des sous-dossiers

Message par cyrille »

Je pense que ce sera tout simplement

Code : Tout sélectionner

flac -7 --replay-gain $file
Désolé pour les réponses décousues mais pris entre plusieurs feux, dirons nous


Une fois que tu auras compris la logique tu pourras optimiser le tout ;)
?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 »

arghlub a écrit :
lun. 11 mars 2019 10:40
Ou mieux, tu mets le chemin absolu (pas en chemin relatif) pour pouvoir l'exécuter de n'importe où (et donc créer un lanceur facilement)
Merci, c'est déjà ça de fait. ;)

----------------

La commande sh test.sh me retourne :

Code : Tout sélectionner

: not foundt.sh: 2: test.sh: 
: not foundt.sh: 3: test.sh: 
: not foundt.sh: 4: test.sh:
Linux Mint 21.3 Virginia | Cinnamon 6.0.4

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

Re: Traiter des fichiers dans des sous-dossiers

Message par cyrille »

tu peux donner le retour de

Code : Tout sélectionner

cat  test.sh
?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 »

Retour :

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"
    done
}
Linux Mint 21.3 Virginia | Cinnamon 6.0.4

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

Re: Traiter des fichiers dans des sous-dossiers

Message par cyrille »

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"
    done
}

recursiveSearch  $dossierDeTravail
Tu as oublié l'appel de ta fonction à la fin
tu peux filer

Code : Tout sélectionner

ls -lR /home/nerva/Audio/Conversion
?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 »

J'ajoute cette ligne à la fin du fichier ? Même retour.
Linux Mint 21.3 Virginia | Cinnamon 6.0.4

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

Re: Traiter des fichiers dans des sous-dossiers

Message par cyrille »

Code : Tout sélectionner

chmod +x test.sh
puis pour le lancer

Code : Tout sélectionner

./test.sh
?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 »

:cry:

Code : Tout sélectionner

/bin/sh^M : mauvais interpréteur: Aucun fichier ou dossier de ce type
Linux Mint 21.3 Virginia | Cinnamon 6.0.4

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

Re: Traiter des fichiers dans des sous-dossiers

Message par cyrille »

c'est quoi ce truc ?? jamais dit ni écrit

Code : Tout sélectionner

/bin/sh^M
mais

Code : Tout sélectionner

/bin/sh
C'est l'appel de ton shell ;)
?séuqartéd sel ruoP / sécnoféd sel ruoP / sreiruréB sel ruoP / ?étéicos elleuQ

https://crust.ovh

Répondre