Awk
如何以序列的方式列印文件中的行,即根據 tcl 腳本中的特定列排序?
我想根據源文件的第三列排序來列印文件內容。
源文件.txt:
Manav Kumaom Fre shailesh himadri aif manisha Kailash mac Ravi Jwala blu Prakash Ojha Zan Mahi Aulakh yep
我想在新文件中列印根據第 3 列排序的文件內容:
所需輸出:
shailesh himadri aif Ravi Jwala blu Manav Kumaom Fre manisha Kailash mac Mahi Aulakh yep Prakash Ojha Zan
試試這個,
sort -k3 sourcefile.txt
-k
用關鍵位置/欄位排序。
既然你標記了 tcl
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