我有一个存储在终端服务器中的文件,并且我想要使用TCL和正则表达式匹配的文件中存储了一些信息。
我怎么能实现这个目标?我是否需要打开文件才能使用regluar表达式? 有人可以帮我吗?
答案 0 :(得分:0)
是。从概念上讲,您将文件读入内存,然后使用正则表达式获取所需的信息。对于非常大的文件,您可以从一次读取一个部分(例如,一行)并将正则表达式应用到该文件中受益,但是您可能必须处理多行模式,这会使代码变得更加棘手
读取文件可能需要先将其复制到本地计算机。 (您通常可以避免在本地创建文件,但并非总是如此。)或者您将运行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
}