我希望生成一个tcl脚本,它读取文件的每一行,比如abc.txt
; abc.txt
的每一行都是需要选择的文件集的特定位置,除了评论的文件。
例如abc.txt
有
./pvr.vhd ./pvr1.vhd // ./pvr2.vhd
所以我需要阅读abc.txt
的每一行并从它提到的位置选择文件并将其存储在一个单独的文件中,除了以“//
”开头的那个文件
任何提示或脚本都将深受赞赏。
答案 0 :(得分:1)
通常的做法是在循环开始处放置一个过滤器,该过滤器处理导致跳过注释行的每一行。您可以使用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} {…}
)一起使用时,这也可以正常工作。