我有两个文件。
- 归档一个
0 10 20 30
10 20 30 40
0 10 23 34
文件 a 的值是(x1 y1 x2 y2 格式)
- 文件 b
- 格式为 PMM xy -(某个数字)
PMM 10 20 -100
PMM 20 30 -150
PMM 50 60 -100
在文件 B 中,我想搜索字段 4,5(从 P 作为字段 1 开始)是否在文件 a 的范围内。如果是,则不打印 FileB 的行,否则打印该行。
我们不会打印文件 b 的行
x1 < x < x2 & y1 < y < y2
所以脚本的 O/P 应该是
文件 c
PMM 50 60 -100
我在 tcl 中编写了以下脚本,但我的问题是它没有在 File a 中搜索文件 b 的所有内容。
set abc "b"
set ab "a"
set cord [open $ab "r"]
if [catch {open $abc r} FILE_R {
puts "failed to read $abc"
return -1
}
while { [gets $FILE_R line] >= 0 } {
if [regexp {^#} $line ] {
} else {
set x_cord [lindex $line 3]
set y_cord [lindex $line 4]
while { [gets $cord line] >= 0 } {
set x1_cord [lindex $line 0]
set y1_cord [lindex $line 1]
set x2_cord [lindex $line 2]
set y2_cord [lindex $line 3]
if { [expr x1_cord < x_cord && x_cord < x2_cord && y1_cord < y_cord && y_cord < y2_cord ] == 1 } {
} else {
puts $line
}
}
}
}
close $FILE_R