Tcl 通过增加关键字条件(冒号树)编辑文本文件

Tcl 通过增加关键字条件(冒号树)编辑文本文件,tcl,Tcl,我对逐行编辑我的文本文件感到困惑。如何在列树关键字条件(列树:23、2、53、n…)中逐行增加排序 谢谢 让列表完成所有工作。使用[lsort-integer-index 2$lines\u list]其中lines\u list是行列表,每行也是列表。Tcl将按第三个整数子列表元素对子列表进行排序 set fp [open "data.txt" r] set filecontent [read $fp] close $fp set text [split $filecontent \n] f

我对逐行编辑我的文本文件感到困惑。如何在列树关键字条件(列树:23、2、53、n…)中逐行增加排序


谢谢

让列表完成所有工作。使用
[lsort-integer-index 2$lines\u list]
其中
lines\u list
是行列表,每行也是列表。Tcl将按第三个整数子列表元素对子列表进行排序

set fp [open "data.txt" r]
set filecontent [read $fp]
close $fp

set text [split $filecontent \n]
foreach line $text {
    lappend lines_list [split $line ","]
}
set lines_list [lsort -integer -index 2 $lines_list]
set text ""
foreach line $lines_list {
    append text [join $line ","] \n
}

set fout [open "out.txt" w]
puts -nonewline $fout $text
close $fout

您真正感兴趣的数据是否为CSV格式?还是像你的样品一样,仅仅用逗号分隔?(真正的CSV格式有一些非常重要的引用规则,允许在值中使用逗号。)这很重要,因为有一个用于解析真正的CSV文件的标准包。
set fp [open "data.txt" r]
set filecontent [read $fp]
close $fp

set text [split $filecontent \n]
foreach line $text {
    lappend lines_list [split $line ","]
}
set lines_list [lsort -integer -index 2 $lines_list]
set text ""
foreach line $lines_list {
    append text [join $line ","] \n
}

set fout [open "out.txt" w]
puts -nonewline $fout $text
close $fout