find : comment travailler avec "-exec command {}" ?
Bonjour,
J'ai besoin d'effectuer un traitement sur des fichiers dans un dossier.
Pour les avoir les uns après les autres, j'utilise find ainsi (trouvé dans les exemples du man) :
Code:
1 2 3
| # find . -type f -iname "*.jpg" -exec echo '{}' \;
./bidon.JPG
./mimosa.jpg |
et on voit que ça fonctionne.
Mais j'ai besoin de ne récupérer que le nom du fichier, soit enlever l'extension et son point et les 2 premiers caractères du début ("./"), et là, la seule manière que j'ai trouvée consiste à appeler un script secondaire :
find . -type f -iname "*.jpg" -exec ./suite.sh '{}' \; avec suite.sh =
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| #!/bin/bash
# pour test :
#echo $1 du script
# ok, passons à la vraie vie :
fic="$1"
# supprimer l'extension :
fic="${fic%.*}"
# supprimer les 2 premiers caractères :
fic="${fic:2}"
echo "$fic" |
Je suis content, ça me retourne bien
Mais question maintenance, ça va être lourd. Une idée pour tout mettre sur la ligne find ?
Merci et bon dimanche,