我有一个文件存储在终端服务器中,并且文件中存储了一些信息,我想使用 TCL 和正则表达式进行匹配。
我怎么能做到这一点?我需要打开文件才能使用正则表达式吗?谁可以帮我这个事?
是的。从概念上讲,您将文件读入内存,然后使用正则表达式来获取您想要的信息。对于非常大的文件,一次读取一段(例如,一行)并将正则表达式应用于其中会受益,但随后您可能必须处理多行模式,这会使代码变得更加棘手.
读入文件可能需要您先将其复制到本地计算机。(您通常可以避免实际在本地创建文件,但并非总是如此。)或者您将运行 Tcl 程序的位置重新定位到原始文件旁边;一般来说,这也可以正常工作。
假设您有一个非常简单的案例:
# Use scp to bring file across; _many_ other options possible
exec scp otherhost:file.txt localfile.txt
# Read in the file:
set f [open localfile.txt]
set data [read $f]
close $f
# Get the interesting bits...
if {[regexp {MATCH_THIS: (\d+)} $data -> theNumber]} {
# Found a match, number in $theNumber
}