假设我有一个file1,里面有几个查询,
Query 1
Query 2
Query 3
我有一个包含大量数据的普通文本file2
Data 1 Query 1 something something
Data something Query 2 something something
Something Query 3 something something
Data1 continue no query
Data2 continue no query
如何创建一个循环,使其忽略包含来自file1的查询的行,并仅打印文件中没有查询的行?所以在这种情况下,只会打印这些值
Data1 continue no query
Data2 continue no query
我尝试使用我制作的此循环脚本来产生结果
将要从file1中忽略的查询存储到$ wlistItems中
set openFile1 [open file1.txt r]
while {[gets openFile1 data] > -1} {
set wlist $data
append wlistItems "{$wlist}\n"
}
close $openFile1
处理file2以打印行而不忽略查询
set openFile2 [open file2.txt r]
while {[gets $openFile2 data] > -1} {
for {set n 0} {$n < [llength $wListItems]} {incr n} {
if {[regexp -all "[lindex $wListItems $n]" $data all value]} {
continue
}
puts $data
}
}
close $openFile2
但是,脚本不会跳过这些行。相反,它从file2打印出重复的数据。
while {[gets $openFile2 data] > -1} {
set found 0
for {set n 0} {$n < [llength $wListItems]} {incr n} {
if {[regexp -all "[lindex $wListItems $n]" $data all value]} {
set found 1
break
}
}
if {!$found} {
puts $data
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句