最初の行を読んで破棄します。行 2 が一致する場合は終了します。それ以外の場合は終了します。
set f [open $filename r]
if {[gets $f line] == -1} { return -code error "failed to read line 1" }
if {[gets $f line] == -1} { return -code error "failed to read line 2" }
if {![string match "*GW: 192.169.0.1*" $line]} { return -code error "failed to match" }
return
もちろん、常に 2 行目であるとは限らず、ファイルを閉じるように配置するのが賢明ですが、上記は提供された仕様を満たす tcl の最も単純なバージョンです。開いているファイルは、プロセスの終了時に閉じられます。正規表現は必要ありません。文字列の一致で問題ありません。または:
set f [open $filename r]
set lineno 1
while {[gets $f line] != -1 && $lineno < 3} {
if {$lineno == 2 && [regexp {GW: 192.169.0.1} $line]} {
return 1
}
incr lineno
}
close $f
return 0