使用tcl抓取文件匹配行的下一行内容
时间: 2023-06-20 10:05:43 浏览: 698
通过sed截取一行匹配内容
假设你要匹配文件中包含关键词"hello"的行,并输出该行的下一行内容,可以使用以下Tcl代码:
```
set keyword "hello" ; 关键词
set nextline "" ; 下一行内容
set found 0 ; 是否找到关键词的标志位
set fp [open "filename.txt" r] ; 打开文件
while {[gets $fp line] != -1} { ; 逐行读取文件
if {$found} { ; 如果已经找到关键词
set nextline $line ; 保存下一行内容
break ; 结束循环
}
if {[string match "*$keyword*" $line]} { ; 匹配关键词
set found 1 ; 标记已经找到
}
}
close $fp ; 关闭文件
if {$nextline ne ""} {
puts "下一行内容为:$nextline"
} else {
puts "未找到匹配行或已是文件末尾"
}
```
在上面的代码中,我们使用了`string match`命令来匹配关键词。这个命令支持通配符,`*`表示匹配任意字符。如果匹配成功,则标记`found`为1,表示已经找到关键词。在接下来的循环中,如果`found`为1,则将下一行内容保存到变量`nextline`中,并退出循环。最后,判断是否找到匹配行,如果找到则输出下一行内容,否则输出提示信息。
阅读全文