#1 Le 22/11/2019, à 18:20
- DonutMan75
[RESOLU] "Décimer" un répertoire
Bonsoir à tous,
j'ai un répertoire contenant plein d'images :
$ ll ./jerk/
Nmax_10_SA_0001.png
Nmax_10_SA_0002.png
Nmax_10_SA_0003.png
Nmax_10_SA_0004.png
etc...
Je souhaiterais créer un deuxième répertoire contenant des liens symboliques vers une décimation de ces images (par exemple une image sur deux). Mais la numérotation doit être continue ! Ainsi, je souhaiterais par exemple avoir :
$ ll ./jerk2/
Figure_0001.png > ../jerk/Nmax_10_SA_0001.png
Figure_0002.png > ../jerk/Nmax_10_SA_0003.png
Figure_0003.png > ../jerk/Nmax_10_SA_0005.png
Figure_0004.png > ../jerk/Nmax_10_SA_0007.png
J'ai tenté le code suivant qui ne se déroule pas... et j'ai prêté mon bouquin bash (((
#! /bin/sh
p=1
k=0
for f in ../jerk/Nmax_10_SA*png; do
echo $f
[ $k -eq 0 ] && { fout=$(printf "%04d" $p) ; echo ln -s "$f" "Figure_${p}.png" ; p=$((p+1)) } ;
[ $k -eq 0 ] && k=1 ;
[ $k -eq 1 ] && k=0 ;
done
$ ./populate.sh
./populate.sh: line 10: syntax error near unexpected token `done'
./populate.sh: line 10: `done'
Une âme charitable pourrait-elle m'aider ?
Pour info, ce serait pour faire une petite animation pour une présentation mais les fichiers sont trop nombreux et l'animation patine un peu...
Merci d'avance
Donut
Dernière modification par DonutMan75 (Le 23/11/2019, à 09:20)
Hors ligne
#2 Le 22/11/2019, à 18:33
- pingouinux
Re : [RESOLU] "Décimer" un répertoire
Bonjour,
Il faut un ; avant la dernière } :
[ $k -eq 0 ] && { fout=$(printf "%04d" $p) ; echo ln -s "$f" "Figure_${p}.png" ; p=$((p+1)); } ;
Édité :
Tu veux sans doute ceci
#! /bin/bash
p=0
k=0
for f in ../jerk/Nmax_10_SA*png; do
echo "$f"
(( !(k%2) )) && { printf -v fout "%04d" $((++p)); echo ln -s "$f" "Figure_${fout}.png"; }
((k++))
done
Dernière modification par pingouinux (Le 22/11/2019, à 18:47)
Hors ligne
#3 Le 23/11/2019, à 09:19
- DonutMan75
Re : [RESOLU] "Décimer" un répertoire
Salut Pingouinux,
super merci pour ton oeil acéré et aussi pour ta solution clef en main !!
Les (( tests logiques )) et le ((k++)) semblent être une spécificité du bash ?
Merci encore quoi qu'il en soit
Bonne journée à tous
Donut
Hors ligne
#4 Le 23/11/2019, à 09:37
- pingouinux
Re : [RESOLU] "Décimer" un répertoire
Les (( tests logiques )) et le ((k++)) semblent être une spécificité du bash ?
Oui.
Hors ligne