来自第二列的第一个值,第1列中的值最小

时间:2014-03-10 08:02:33

标签: tcl

我有这个文件

2  1
12 2
34 1
56 1
45 3
33 2
77 1
83 2
62 3
75 3

我想从第二列获取第一列中的第一个值,其中第一列的值最小 像这样

2  1
12 2
45 3

1 个答案:

答案 0 :(得分:1)

这可以通过线性扫描和一点关联数组来完成,如下所示:

set f [open $filename]
foreach line [split [read $f] "\n"] {
    # ASSUME: valid Tcl list of numbers
    lassign $line col1 col2
    if {![info exists minima($col2)] || $minima($col2) > $col1} {
        set minima($col2) $col1
    }
}
close $f
foreach col2 [array names minima] {
    puts "$minima($col2) $col1"
}

强制执行您需要的各种解析,排序和格式化。