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
>
>
>