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 29/04/2025, à 16:22

ptilou007

[résolu] Mkdir et variable sur nom de fichier ?

Bonjour,

J'ai sindé mes video en images, je cherche un script qui me range les images par nom de video.

Chaque images à le nom de la video, plus une incrementation numérique, certains film fond plus de 200 k d'images, et donc c'est en vue de me facilité la manipulation .

Je pense que c'est deeux boucles imbriqué, l'une mkdir et l'autre mv ?

Merci

Philippe

Mon script en troisieme message fonctionne ! L'erreur venait de l'ancien systeme d'exploitation, il semble une malveillance ...

Dernière modification par ptilou007 (Hier à 09:18)

Hors ligne

#2 Le 29/04/2025, à 17:44

Watael

Re : [résolu] Mkdir et variable sur nom de fichier ?

salut,

c'est plus probablement

  • une seule boucle sur les images

  • récupération du nom de la vidéo dans le nom de l'image

  • si le répertoire n'existe pas, alors on le crée

  • on déplace l'image dans le répertoire

  • .

je me demande quand même pourquoi cela n'a pas été fait lors du découpage des vidéos en images !

tu bouclais sur les vidéos
tu créais le répertoire quand il n'existait pas
tu indiquais le répertoire où mettre les images au logiciel de montage/découpage
et hop!


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#3 Le 30/04/2025, à 12:16

ptilou007

Re : [résolu] Mkdir et variable sur nom de fichier ?

bonjour,

d’une ia :

 #!/bin/bash

# Répertoire de travail (le dossier où sont les images)
WORKDIR="."
cd "$WORKDIR"

# Boucle sur les fichiers images (jpg, png, etc.)
for img in *.jpg *.jpeg *.png; do
    # Vérifie si le fichier existe (évite les erreurs si aucun .jpg/.png)
    [ -e "$img" ] || continue

    # Récupère le nom de la vidéo à partir du nom de l’image (avant le premier "_")
    base_name=$(echo "$img" | cut -d'_' -f1)

    # Crée le dossier si nécessaire
    mkdir -p "$base_name"

    # Déplace l'image dans le bon dossier
    mv "$img" "$base_name/"
done

echo "Organisation terminée."

vous voyez des erreur s ?


merci

philippe

Hors ligne

#4 Le 30/04/2025, à 13:21

Watael

Re : [résolu] Mkdir et variable sur nom de fichier ?

des erreurs, pas vraiment; des maladresses plus ou moins grosses:
le shebang doit débuter dans la première colonne de la première ligne.
on indique toujours des chemins absolus.
on ne change pas de répertoire.
$base_name ne peut pas avoir d'enfants, donc -p est inutile.
créer le répertoire est nécessaire s'il n'existe pas; cela n'est pas testé.

tu as mis des guillemets autour de toutes les variables, et ça c'est bien. smile

#!/bin/bash

shopt -s nullglob #cf. help shopt

oussa=/chemin/repertoireImages

for img in "$oussa"/*.{jpg,jpeg,png} #cf. man bash /Développement des accolades
do
    imgName=${img##*/} #cf. man bash /Développement des paramètres
    destDir=${imgName%_*} #idem
    test -d "$oussa/$destDir" || mkdir "$oussa/$destDir"
    mv "img" "$oussa/$destDir"/
done

pas testé, a priori ça devrait marcher.

Dernière modification par Watael (Le 02/05/2025, à 17:12)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#5 Le 30/04/2025, à 14:25

soshy

Re : [résolu] Mkdir et variable sur nom de fichier ?

Watael a écrit :

$base_name ne peut pas avoir d'enfants, donc -p est inutile.
créer le répertoire est nécessaire s'il n'existe pas; cela n'est pas testé.

man mkdir a écrit :

-p, --parents
              no  error  if existing, make parent directories as needed

Donc en gros, ça fait le check de l'arborescence (y compris la profondeur 0), et ça crée si besoin. Ca ne sort jamais en erreur (sauf problème de droit lors de la création). Au final, dans notre cas, ça fait la même chose que ce que tu as écrit, juste plus court, et correspond effectivement au commentaire de l'IA.

Personnellement je préfère utiliser mkdir -p dans un cas comme celui-ci.

Dernière modification par soshy (Le 30/04/2025, à 14:27)

Hors ligne

#6 Le 30/04/2025, à 14:59

Watael

Re : [résolu] Mkdir et variable sur nom de fichier ?

il vaut quand même mieux savoir faire un test.
et je préfère ne pas exécuter de commandes externes quand ce n'est pas nécessaire.


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#7 Le 01/05/2025, à 07:00

ptilou007

Re : [résolu] Mkdir et variable sur nom de fichier ?

salut,

Watael a écrit :

il vaut quand même mieux savoir faire un test.
et je préfère ne pas exécuter de commandes externes quand ce n'est pas nécessaire.

le probleme peut venir du systeme d’exploitation, d’ou l’interets de la question !

philippe


Modération : merci de respecter la langue du forum qui est le français, pas le SMS.

Dernière modification par ptilou007 (Le 02/05/2025, à 08:23)

Hors ligne

#8 Le 02/05/2025, à 15:54

ptilou007

Re : [résolu] Mkdir et variable sur nom de fichier ?

erreur systeme ! ou script ?slt,

j’ai une erreur de fichier pour chaque script.

j’en ai fait un troisieme …

Philippe

Hors ligne

#9 Le 02/05/2025, à 17:12

Watael

Re : [résolu] Mkdir et variable sur nom de fichier ?

pour répondre, il nous faut le script, ET les messages d'erreurs.


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#10 Le 11/05/2025, à 07:52

ptilou007

Re : [résolu] Mkdir et variable sur nom de fichier ?

Bonjour,

Tous les scripts affiche une erreur, le tiens il dit qu'il ne trouvent pas les fichiers !
J'ai pris l'ecran en photo des que je remes la mains dessus je t'en poste une copie <;;;
J'ai compris il manque ffmeg dans /sbin ...

Philippe

Dernière modification par ptilou007 (Le 11/05/2025, à 07:55)

Hors ligne

#11 Hier à 08:17

ptilou007

Re : [résolu] Mkdir et variable sur nom de fichier ?

Bonjour,

Watael a écrit :

$base_name ne peut pas avoir d'enfants, donc -p est inutile.
créer le répertoire est nécessaire s'il n'existe pas; cela n'est pas testé.

tu as mis des guillemets autour de toutes les variables, et ça c'est bien. smile

#!/bin/bash

shopt -s nullglob #cf. help shopt

oussa=/chemin/repertoireImages

for img in "$oussa"/*.{jpg,jpeg,png} #cf. man bash /Développement des accolades
do
    imgName=${img##*/} #cf. man bash /Développement des paramètres
    destDir=${imgName%_*} #idem
    test -d "$oussa/$destDir" || mkdir "$oussa/$destDir"
    mv "img" "$oussa/$destDir"/
done

pas testé, a priori ça devrait marcher.

Cela ne fonctionne pas, je ne sais pas si c'est pas récursif, ou tous cour cela ne fonctionne pas, j'ai seulement hier ré-installé une Debian, et ce matin le teste ne donne pas d'erreur, mais je n'ai pas de dossier crée et de fichier déplacer ?

Je ne vois pas d'où l'erreur peut venir à part la récursivité ?

Merci de vos idées

Philippe

Hors ligne

#12 Hier à 08:39

iznobe

Re : [résolu] Mkdir et variable sur nom de fichier ?

Watael a écrit :

pour répondre, il nous faut le script, ET les messages d'erreurs.

Bonjour , ainsi que la manière dont le script est lancé .


retour COMPLET et utilisable de commande  |  script montage partitions

MSI Z490A-pro , i7 10700 , 32 GB RAM .

Hors ligne

#13 Hier à 08:49

iznobe

Re : [résolu] Mkdir et variable sur nom de fichier ?

Bon voilà le code de @Watael corrigé et testé tongue :

#!/bin/bash

shopt -s nullglob

oussa="/home/iznobe/Images/Copies d'écran"

for img in "$oussa"/*.{jpg,jpeg,png}
do
    imgName=${img##*/}
    destDir=${imgName%_*}
    test -d "$oussa/$destDir" || mkdir "$oussa/$destDir"
    mv "$img" "$oussa/$destDir"/
done

il manquait " $ " devant img dans la derniere ligne . ainsi que les quotes d' encadrement pour la designation du chemin pour unifier en cas d' espaces ou de caracteres diacritiques .

tu as pas du trop te fatiguer a tester cela dit . ca m' a pris 1 minute pour corriger ...

Dernière modification par iznobe (Hier à 08:54)


retour COMPLET et utilisable de commande  |  script montage partitions

MSI Z490A-pro , i7 10700 , 32 GB RAM .

Hors ligne

#14 Hier à 13:52

Watael

Re : [résolu] Mkdir et variable sur nom de fichier ?

il manquait " $ " devant img

oops.


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne