使用tcl脚本收集文件集

使用tcl脚本收集文件集,tcl,Tcl,我希望生成一个tcl脚本,它读取文件的每一行,比如说abc.txt;abc.txt的每一行都是需要拾取的文件集的特定位置,注释的文件除外。 例如,abc.txthas ./pvr.vhd ./pvr1.vhd // ./pvr2.vhd /pvr.vhd ./pvr1.vhd //./pvr2.vhd 因此,我需要阅读abc.txt的每一行,从它提到的位置选取文件,并将其存储在一个单独的文件中,但以“/开头的一行除外。” 任何提示或脚本都将受到高度赞赏。通常的做法是在循环的开始处放置一个过滤器,

我希望生成一个tcl脚本,它读取文件的每一行,比如说
abc.txt
abc.txt
的每一行都是需要拾取的文件集的特定位置,注释的文件除外。 例如,
abc.txt
has

./pvr.vhd ./pvr1.vhd // ./pvr2.vhd /pvr.vhd ./pvr1.vhd //./pvr2.vhd 因此,我需要阅读abc.txt的每一行,从它提到的位置选取文件,并将其存储在一个单独的文件中,但以“
/
开头的一行除外。”


任何提示或脚本都将受到高度赞赏。

通常的做法是在循环的开始处放置一个过滤器,用于处理导致跳过注释行的每一行。您可以使用
string match
来实际检测是否要过滤行

set f [open "abc.txt"]
set lines [split [read $f] "\n"]
close $f

foreach line $lines {
    if {[string match "//*" $line]} {
        continue
    }
    # ... do your existing processing here ...
}
当与流循环一起使用时(
while{[gets$f line]>=0}{…}
)也同样有效