본문 바로가기

카테고리 없음

[Linux] tcl List

리스트 명령어는 원본 변수의 값을 변화 시키는지 아닌지가 핵심

변수의 이름을 Argument로 받는 경우는 원본 변수의 값을 변화시키고

변수의 값을 Argument로 받는 경우엔 원본 변수의 값을 변화시키지 않음

변수 이름 앞에 $가 붙으면 원본이 변하지 않음

 

- lappend

새로운 변수가 주어지면 새로 리스트를 생성하고

이미 존재하는 변수가 주어지면 리스트의 끝에 덧붙임 , 원본 변수 값 바뀜

$ lappend var 1 2
$ lappend var 3 4 5
$ puts $var
result 1 2 3 4 5

 

- concat

주어진 Argument들을 연결해 하나의 리스트로 만듬 , 원본 변수 값 변하지 않음

$ set a [list 1 2]
$ set b [list 3 4]
$ set c 5
$ puts [concat $a $b $c 6 7]
result 1 2 3 4 5 6 7

 

- llength 

주어진 리스트의 원소 개수를 리턴

$ puts [llength [list 1 2 3]]
result 3

 

- lindex

주어진 리스트 중에서 인덱스에 해당하는 원소를 리턴, 인덱스는 0부터 시작

$ puts [lindex [list 1 2 3 4] 3]
result 4

 

- lrange

주어진 리스트 중에서 시작 인덱스와 끝 인덱스 사이의 원소를 리턴

리스트의 끝까지를 나타내는 특별 인덱스 : end

$ puts [lrange [list 1 2 3 4] 0 end]
result 1 2 3 4

 

- linsert

리스트 Argument들을 주어진 인덱스 위치에 삽입

$ puts [linsert [list 1 2 3 4] 2 h i]
result 1 2 h i 3 4

 

- lreplace

리스트에서 시작 인덱스부터 끝 인덱스까지 주어진 Argument들로 바꿈

$ puts [lreplace [lits 0 1 2 3] 1 2 h i]
result 0 h i 3

 

- lsearch

리스트의 원소 중에서 패턴에 맞는 원소를 찾아 해당 원소를 리턴 [ 결과값 0 ]

패턴이 맞는 원소가 없을 경우 -1 리턴

opt : -glob : 기본옵션 , -exact : 정확히 모든 글자 일치 , -regexp : 정규 표현식 이용

$ puts [lsearch [list apple banana grape] a*]
result 0
$ puts [lsearch [list apple banana grape] c*]
result -1

 

- lsort

리스트의 원소들을 정렬하여 리턴

opt : -increasing : 오름차순 [default] , -decreasing : 내림차순 -ascii : ASCII값에 따라 정렬

       -dictionary : 사전 순으로 정렬 , -integer : 원소들이 모두 정수임을 명시, 정수가 아니면 에러

$ puts [lsort [list c a d b]]
result a b c d