Contenu | Rechercher | Menus

Annonce

L'équipe des administrateurs et modérateurs du forum vous invite à prendre connaissance des nouvelles règles.
En cas de besoin, vous pouvez intervenir dans cette discussion.

Ubuntu 18.04 LTS
Ubuntu-fr propose des clés USB de Ubuntu et toutes ses « saveurs » ainsi qu'un magnifique t-shirt pour cette toute nouvelle version d'Ubuntu !

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 22/06/2008, à 22:41

Fake

probleme de substitution dans un script utilisant find ... -exec ..

Bonsoir,
Je suis en train de me faire un script qui signe des images et pour cela j'ai pensé utiliser "find".

find ./ -maxdepth 1 \( -iname '*.jpg' -o -iname '*.png' -o -iname '*.gif' \) -exec composite -dissolve 100%  -gravity SouthEast "$signature" "{}" "$prefix${{}:2}" \;

Mais cette ligne me revoie une erreur de substitution sur le "$prefix${{}:2}"
Je sais que c'est a cause du ${{}:2}

En fait je cherche a ajouter un préfixe ou un suffixe aux photos signées. J'avais abandonné le suffixe car je n'arrivais pas à le placer avant l'extension.

Je voulais donc rajouter un suffixe mais find renvoie des résultat sous la forme ./fichier et les deux caractères du début font que l'on désigne un sous répertoire au lieu d'ajouter un préfixe. Du coup je voulais les supprimer mais ça n'a pas l'air de marcher...

Est ce que quelqu'un sait comment on pourrait ajouter un préfixe ou un suffixe dans ce cas là ?

J'ai penser que je pouvais faire une fonction qui me permettrai de séparer en deux étape arrangement du nom et composite mais je n'arrive pas a faire comprendre a -exec qu'ils s'agit d'une fonction, il me répond que le fichier n'existe pas. (ce qui est normal puisque je n'appelle pas un fichier mais ma fonction)

Hors ligne

#2 Le 22/06/2008, à 23:59

Totor

Re : probleme de substitution dans un script utilisant find ... -exec ..

voilà une solution :

find ./ -maxdepth 1 \( -iname '*.jpg' -o -iname '*.png' -o -iname '*.gif' \)|sed "s/^.\///"|xargs -L1 -I {} composite -dissolve 100%  -gravity SouthEast "$signature" "{}" "${suffixe}{}"

mais tu peux simplifier par

ls |grep -i -E "*\.(jpg|png|gif)$"|xargs -L1 -I {} composite -dissolve 100%  -gravity SouthEast "$signature" "{}" "${suffixe}{}"

Dernière modification par Totor (Le 23/06/2008, à 00:04)


-- Lucid Lynx --

Hors ligne