Bonjour,

J'ai fait comme t'as dit :
 #!/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

-- 
ptilou

Le mar. 2 sept. 2025 à 11:42, bern <[email protected]> a écrit :

> Et si on commençait par le plus simple ? man bash...
>
> base_name=${img%_*}
>
> ça marche aussi en dash.
>
>
> Le 2025-09-01 10:28, philippe L a écrit :
>
> Bonjour,
>
> J'ai des noms de fichiers composé de plusieurs _ , je veux que le script
> prennet en compte le dernier des _ et non le premier, que dois je modifier ?
>
>  #!/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
>
> merci
>
> --
> Ptilou
>
>
>

Répondre à