파일의 줄을 순차적으로 인쇄하는 방법, 즉 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

관련 정보