注意:我已尝试为每个子目录实现以下逻辑。但不能这样做。
#!/bin/csh -f
setenv option $<
switch ($option)
cd $option
foreach i (`ls`)
pushd $i
foreach j (`ls *.v *.sv`)
#sed -nE 's/^module +([^ (#]+) *[#(].*$/\1/p' $j > mod_name.txt
awk -F'[ \t#(;]+' '/^module/{ print $2}' $j > mod_name.txt
foreach k (`cat mod_name.txt`)
sed -r -i "s/^[ ]*$k/${k}_ext/g" $j
end
end
popd
end
在这里,我将仅传递父目录名称,然后我的脚本将遍历每个子目录并检查 *.v 和 *.sv 文件以执行一些操作并检查其他目录等等。
pv_ncvlog 是父目录名称。
例如 :
**cd pv_ncvlog**/
SKIP_lna64 bin.hppa/ bin.lnppc/ bin.sun4/ bin/ etc/ lost+found/ test/
SKIP_lnppc bin.ibmrs/ bin.lnx86/ bin.sun4v/ customer_lib/ ict/ rd_inca_test/ vplan/
bin.all/ bin.lna64/ bin.sol86@ bin.wint/ docs/ ifcs/ stream_mgmt/
我使用 bash 的解决方案。如果您想要 Bourne Shell,请使用
for file in $dir/*.v $dir/*.sv
:请注意,
find
生成当前树中的所有目录。如果您只想要第一级目录,请添加-maxdepth 1
.