我已将文件读入字符串并按换行符分隔元素
if {[file exists $inputFile] == 1} {
set fpI [open $inputFile r]
set input [read $fpI]
set lines [split $input "\n"]
close $fpI
} else {
return "File does not exsist"
}
现在我想逐行检查整个文件,当我得到某些条件的匹配时,我想存储行#,实际上是$ lines字符串中的元素号。如何在不使用其他变量的情况下获取行号,并且每次都不运行搜索(高开销)?
答案 0 :(得分:0)
set fp [open inputfile r]
 while {[gets $ fp line]!= - 1} {
 incr line_num
 if {$ line eq“SOMETEXT”} {
打破
 }
}
关闭$ fp
将“line_num:$ line_num”



答案 1 :(得分:0)
到目前为止,最简单的机制是保持自己的行计数器。虽然foreach
确实有一个内部索引计数器,但它根本不会暴露给脚本。
set lineNumber 0
foreach line $lines {
incr lineNumber
# ...
}