utiliser du contenu de file modifié comme arguments

Dans un script, je voudrais purger un repository mercurial, mais être en mesure de conserver un certain nombre de templates de files (configurables) que j'ai lus à partir de $ FILENAME. La syntaxe de la command hg est

hg purge --all --exclude PATTERN1 --exclude PATTERN2 ... 

Ainsi, si $ FILENAME contient une list de templates de files (un model par ligne), chaque model doit être précédé d'un "–exclude" afin de build la command line

Mon approche actuelle est d'utiliser pour la construction de la list d'arguments
grep -v -E "^[[:blank:]]*$" $FILENAME | sed "s/^/--exclude /g" | xargs echo
qui ignore également les lignes vides et celles qui contiennent uniquement des tabs ou des espaces qui entraîneraient une erreur si elle est utilisée pour build la command line ci-dessus. Ainsi au total:

 hg purge --all `grep -v -E "^[[:blank:]]*$" $FILENAME | sed "s/^/--exclude /g" | xargs echo` 

Y a-t-il une meilleure façon, peut-être avec quelques arguments xargs que je ne connais pas?

Il semble y avoir même un raccourci dans mercurial lui-même, en utilisant des lists de files (suggéré par mg dans #mercurial):
hg purge --all --exclude "listfile:$FILENAME"

Je ne comprends pas pourquoi vous utilisez grep et xargs du tout. Étant donné un file de templates comme celui-ci:

 foo bar baz 

Tu pourrais courir

 $ echo hg purge --all $(perl -pe 's/^/--exclude /' file) hg purge --all --exclude foo --exclude bar --exclude baz 

Ou même

 $ echo hg purge --all $(sed 's/^/--exclude /' file) hg purge --all --exclude foo --exclude bar --exclude baz 

Supprimez simplement l' echo pour exécuter les commands.