0

我想读取所有包含 .sdc 的文件 文件夹包括

alpha.sdc
beta.sdc
gamma.rpt

我试试 cmd

set a [open "proj/plrs/*.sdc" r]

但它不工作

4

1 回答 1

2

@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]]
于 2021-12-30T20:21:12.003 回答