Saya memiliki kode di bawah ini untuk mengganti beberapa strigns dalam beberapa file, tetapi untuk loop memeriksa file pertama dan tidak mengeksekusi skrip perl. di bawah ini adalah kode saya
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
$(...)
sekitar pola globbing nama file Anda. Anda tidak perlu substitusi perintah di sana. Anda juga dapat menggabungkan empat doa Perl untuk satu doa untuk kecepatan.Jawaban:
The
$(foo)
membangun akan menjalankan perintahfoo
dan mengganti$(foo)
dengan output dari berjalanfoo
. Anda ingin bola, itu bukan perintah. Apa yang Anda lakukan adalah mencoba menjalankan semua file yang dipanggil./zebu.work.post_opt/ZEBU_CTO_FT_MOD*
. Yang kamu butuhkan adalah:Atau, lebih sederhana:
Atau bahkan lebih sederhana:
sumber
perl -ip
bekerja pada beberapa file sekaligus? Saya belum pernah menguji itu.