首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >忽略文件TCL中的行

忽略文件TCL中的行
EN

Stack Overflow用户
提问于 2016-05-25 02:32:02
回答 3查看 1.4K关注 0票数 2

假设我有一个file1,里面有一些查询,

代码语言:javascript
复制
Query 1
Query 2
Query 3

我有一个普通的文本file2包含了一堆数据

代码语言:javascript
复制
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的查询的行,而只打印文件中没有查询的行?因此,在这种情况下,只有这些值被打印出来。

代码语言:javascript
复制
Data1 continue no query
Data2 continue no query

我尝试使用我创建的循环脚本生成结果。

将要从中忽略的查询存储到$wlistItems

代码语言:javascript
复制
set openFile1 [open file1.txt r]
while {[gets openFile1 data] > -1} {
set wlist $data
append wlistItems "{$wlist}\n"
}
close $openFile1

处理file2以打印行而不忽略查询

代码语言:javascript
复制
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打印出重复的数据。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-05-25 04:29:42

代码语言:javascript
复制
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
     }
}
票数 2
EN

Stack Overflow用户

发布于 2016-05-25 05:19:26

一个更简单的解决方案:

代码语言:javascript
复制
package require fileutil

set queries [join [split [string trim [::fileutil::cat file1]] \n] |]
::fileutil::foreachLine line file2 {
    if {![regexp ($queries) $line]} {
        puts $line
    }
}

第一个命令(在package require之后)使用查询读取文件,并将它们打包为一组分支(Query 1|Query 2|Query 3)。第二个命令逐行处理第二个文件,并打印不包含任何这些分支的行。

文档:丝状醇包、如果加入套餐看跌期权Tcl正则表达式的语法雷杰普设置拆分字符串

票数 1
EN

Stack Overflow用户

发布于 2016-05-25 13:08:56

我就这么做:

代码语言:javascript
复制
puts [exec grep -Fvf file1 file2]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37426838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档