如何以顺序方式打印文件中的行,即根据 tcl 脚本内的特定列排序?

如何以顺序方式打印文件中的行,即根据 tcl 脚本内的特定列排序?

我想根据源文件第三列的排序打印文件内容。

源文件.txt:

Manav Kumaom Fre
shailesh himadri aif
manisha Kailash mac
Ravi Jwala blu
Prakash Ojha Zan
Mahi Aulakh yep

我想在新文件中打印根据第三列排序的文件内容:

所需输出:

shailesh himadri aif
Ravi Jwala blu
Manav Kumaom Fre
manisha Kailash mac
Mahi Aulakh yep
Prakash Ojha Zan

答案1

尝试这个,

sort -k3 sourcefile.txt
  • -k按关键位置/字段进行排序。

答案2

自从你标记了

set filename "sourcefile.txt"
set fh [open $filename r]
set data [split [read -nonewline $fh] \n]
close $fh
set sorted [lsort -index 2 -dictionary $data]
puts [join $sorted \n]

按字典顺序按每行 ( ) 的第三个单词排序-index 2——我假设每一行都是一个有效的列表。这可能很天真:这会更安全:

set lines [split [read -nonewline $fh] \n]
set data [lmap line $lines {split $line}]

输出

shailesh himadri aif
Ravi Jwala blu
Manav Kumaom Fre
manisha Kailash mac
Mahi Aulakh yep
Prakash Ojha Zan

相关内容