j'ai le code ci-dessous pour remplacer certains strigns dans plusieurs fichiers, mais la boucle for vérifie le premier fichier et n'exécute pas le script perl. ci-dessous est mon code
if [ -f zebu.work.post_opt/ZEBU_CTO_FT_MOD.v ]
then
for file in $(./zebu.work.post_opt/ZEBU_CTO_FT_MOD*);
do
perl -i -p -e 's/input/inout/g' $file;
perl -i -p -e 's/output/inout/g' $file;
perl -i -p -e 's/wire.*\n/tran\(i0,\ o\);/g' $file;
perl -i -p -e 's/assign.*\n//g' $file;
done
fi
$(...)
contour de votre motif de globbing de nom de fichier. Vous n'avez pas besoin d'une substitution de commande là-bas. Vous pouvez également combiner les quatre invocations Perl en une seule pour la vitesse.Réponses:
La
$(foo)
construction exécutera la commandefoo
et la remplacera$(foo)
par la sortie de l'exécutionfoo
. Vous voulez un glob, ce n'est pas une commande. Vous essayez d'exécuter tous les fichiers appelés./zebu.work.post_opt/ZEBU_CTO_FT_MOD*
. Tout ce dont tu as besoin c'est:Ou, plus simplement:
Ou encore plus simplement:
la source
perl -ip
travailler sur plusieurs fichiers à la fois? Je n'ai jamais testé le taht.