我想读取所有包含 .sdc 的文件 文件夹包括
alpha.sdc
beta.sdc
gamma.rpt
我试试 cmd
set a [open "proj/plrs/*.sdc" r]
但它不工作
@Andreas 有正确的想法。
set files [glob proj/plrs/*.sdc]
set combined ""
foreach file $files {
set fh [open $file r]
append combined [read $fh]
close $fh
}
要将 glob 字符与 cat 一起使用,您需要一个 shell 来解释它们:
set combined [exec sh -c {cat proj/plrs/*.sdc}]
或扩展结果glob
set combined [exec cat {*}[glob proj/plrs/*.sdc]]
你可以使用tcllib
package require fileutil
set combined [fileutil::cat {*}[glob proj/plrs/*.sdc]]
请注意,glob
它不会像 shell 那样对文件进行排序,所以您可能想要
set files [lsort [glob $pattern]]