Process 捕获文件中重复行的tcl代码

Process 捕获文件中重复行的tcl代码,process,duplicates,tcl,lines,tclsh,Process,Duplicates,Tcl,Lines,Tclsh,嗨,我有下面的场景。我逐行阅读文件;然后每一个like将看起来像:20、30、40、90、113等等;像“字符串”。每一个这样就会被放置的变量$在while循环内的每次迭代中,行将有一组值;现在,我想能够捕捉到一条线是否重复或与我们之前看到的类似 myFile将包含: 2 0 3 0 9 0 11 3 3 5 2 9 2 0 3 5 那么: set fid [open myFile] while {[gets $fid line] != -1} {dict incr lines [

嗨,我有下面的场景。我逐行阅读文件;然后每一个like将看起来像:20、30、40、90、113等等;像“字符串”。每一个这样就会被放置的变量$在while循环内的每次迭代中,行将有一组值;现在,我想能够捕捉到一条线是否重复或与我们之前看到的类似

myFile将包含:

2 0 3 0 9 0 11 3 3 5 2 9 2 0 3 5 那么:

set fid [open myFile]
while {[gets $fid line] != -1} {dict incr lines [string trim $line]}
close $fid
dict for {line count} $lines {if {$count > 1} {puts "duplicated: $line"}}

您的问题还不完全清楚,但我猜如果您将lappend调用移到if调用的正下方,即移到if的右大括号和while的右大括号之间的新行,您的程序将运行得更好。谢谢,但这行不通。我希望结果是:相同的数字重复20相同的数字重复20相同的数字重复35相同的数字重复35,而你没有得到,部分原因是你把lappend放错了。嗨,格伦·杰克曼。。那么,您将如何处理两个文件,。一个文件包含一些内容,例如:第一个文件格式:条带1项目位置2甲板4 1条带2项目位置22甲板7 2条带3项目位置3甲板4 3条带4项目位置5甲板8 4条带5项目位置2甲板4 5项目位置和甲板编号的组合必须是唯一的。。所以条纹1和条纹5有相似的位置和甲板。。你如何抓住这些:1;在文件中?或两个文件的组合!提前谢谢你!设置fid[open“| cat file1 file2”]如何?首先将连接文件(使用系统的
cat
可执行文件)。或者:
foreach filename{file1 file2}{set fid[open$filename];while…;close$fid}
yes!,行得通。。然而,它没有输出整行:匹配的字符串是:while{[gets$fid line]!=-1}{set b“[lindex$line 4][lindex$line 6]\n”:dict incr line[string trim$b]}dict for{line count}$line{if{$count 1}{put“duplicated:$line”}重复:2 5我想看到整行,而不是这行中唯一匹配的片段..然后你需要将整行存储在一个单独的dict中,由$b:
索引,{…}{set b[string trim”[lindex$line 4][lindex$line 6]];dict incr count$b;dict set original$b$line};dict for{idx num}$count{if{$num>1}{put“duplicated:[dict get$original$idx]”}
注意,这只输出最后一行匹配:如果有3个或更多匹配项,您将只看到最后一行
set fid [open myFile]
while {[gets $fid line] != -1} {dict incr lines [string trim $line]}
close $fid
dict for {line count} $lines {if {$count > 1} {puts "duplicated: $line"}}
duplicated: 2 0
duplicated: 3 5