У меня есть код ниже, чтобы заменить некоторые strigns в нескольких файлах, но цикл for проверяет первый файл и не выполняет сценарий perl. ниже мой код
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
$(...)
вокруг вашего имени файла имя шаблона. Вам не нужна подстановка команд там. Вы также можете объединить четыре вызова Perl в один для скорости.Ответы:
$(foo)
Конструкция будет выполнить командуfoo
и заменить$(foo)
с выходом запускаfoo
. Вы хотите шар, это не команда. То, что вы делаете, пытается запустить все файлы с именем./zebu.work.post_opt/ZEBU_CTO_FT_MOD*
. Все, что тебе нужно:Или проще:
Или еще проще:
источник
perl -ip
работать с несколькими файлами одновременно? Я никогда не проверял.