Rechercher : dans
Par :

Renomer un fichier dans un script shell

Dernière réponse le 15 mar 2009 à 18:57:51 snow_frog, le 15 mar 2009 à 18:37:23 
 Signaler ce message aux modérateurs

Bonjour,

voilà un petit script tout simple qui permet par l'intermédiaire de imagemagick d'effectuer un trim des bords des fichiers *.jpg présent dans le repertoire

#!/bin/bash
DATA="*.jpg"
for DIR in `find -type d`; do
for FILE in $DIR/$DATA ; do
for i in $FILE ; do

name=$(echo $i | awk -F. '{print $1}') # permet de récupéré le nom de fichier sans l'extention
convert -trim $i $name_trim.jpg # là ou se trouve mon petit problème

done
done
done


mon probleme se trouve au niveau du renomage du fichier
comment integrer dans mon script le renome pour obtenir ça:

lenaic@mars:~/Documents$ ll
image_1.jpg
lenaic@mars:~/Documents$ trimjpg.sh
lenaic@mars:~/Documents$ ll
image_1.jpg
image_1_trim.jpg


merci de votre aide
Configuration: Linux
Konqueror 3.5

Meilleures réponses pour « renomer un fichier dans un script shell » dans :
Exécuter un script shell VoirExécution d'un script Pour pouvoir exécuter un script ou un programme en ligne de commande il y a plusieurs possibilités : 1. Le chemin absolu 2. Le chemin relatif 3. Modifier la variable PATH Note: Le Sha...
Comment lire un fichier ligne par ligne VoirComment lire un fichier ligne par ligne Préambule Boucle while Syntaxe Exemple Astuces Bonus Boucle for Syntaxe Préambule Une des erreurs les plus communes dans l'apprentissage des scripts "bash" sous GNU/LInux pour lire un fichier...
Le remplacement de variables en shell Bash Voir=Le remplacement de variables= Introduction Il peut s'avérer utile de s'assurer qu'une variable est bien définie avant de procéder à son remplacement, ou tout simplement de s'assurer que celle-ci n'est pas vide, et dans ce cas de l'initialiser avec...

1

jipicy, le 15 mar 2009 à 18:49:05

Salut,

[tmpfs]$ echo $1
image_1.jpg

[tmpfs]$ echo ${1%.*}
image_1

[tmpfs]$ echo ${1#*.}
jpg

[tmpfs]$ echo ${1%.*}_trim.${1#*.}
image_1_trim.jpg

[tmpfs]$ 
Donc :
convert -trim $1 ${1%.*}_trim.${1#*.}
devrait le faire...
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

2

snow_frog, le 15 mar 2009 à 18:52:52

Merci,

donc si j'ai bien compris, 1%.* permet d'afficher ce qu'il y a avant le "."
et 1#*. permet d'afficher ce qu'il y a apres le "."

dans quel manuel peut on trouver les explications ?

Répondre à snow_frog

3

jipicy, le 15 mar 2009 à 18:55:04

man bash

Si tu as les pages de man en français :

man bash -P 'less -p "^   Remplacement des paramètres"'

$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

4

snow_frog, le 15 mar 2009 à 18:56:22

Merci
==> résolu

Répondre à snow_frog

5

 jipicy, le 15 mar 2009 à 18:57:51

Voir aussi : http://abs.traduc.org/abs-fr/ch09s03.html
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy