ASSOCIATIVE

포스트: 4|아이템:ASSOCIATIVE(4)
Tags

Posts

4 posts

상관 관계 자료를 2차원 연관 배열(associatve array)에 할당

반달가면|2019년 9월 23일

댓글로 질문을 받았던 문제인데, 답변이 길어서 별도의 게시물로 작성. 문제는 대략 아래와 같다. 간단한 예시로 설명한다. my_data.txt 파일에 3개의 항목(a, b, c)들 사이의 상관 관계가 기록되어 있는데, 형식은 아래와 같다. # my_data.txt 내용 cat my_data.txt a b#, c: b a# c a, b: 각 행의 첫번째 항목(field)은 항목 명칭이다. 각 행의 두번째 항목 이후는 첫번째 항목에 대한 상관 관계 자료다. 연관성 종류에 따라 "#" 또는 ":" 기호가 추가될 수 있다. 이 자료를 2차원 테이블로 표현하는 것이 목표다. 위의 예시를 표현하면 아래와 같이 만드는 것이 결과물이다. a b c ------

리눅스 bash 스크립트에서 연관 배열의 인덱스(index)/키(key) 출력하기

반달가면|2018년 10월 1일

우선 리눅스 bash 스크립트에서 연관 배열(associative array) 사용에 대한 기본적인 내용도 이전 게시물을 참고하자. 여기로 배열을 정의해서 사용할 때 배열의 인덱스(index) 또는 키(key)를 확인해야 할 경우가 있다. 일반적인 배열은 인덱스를 수자로 사용하므로 굳이 인덱스를 별도로 확인할 일이 별로 없겠지만, 문자열을 인덱스/키로 사용하는 연관 배열의 경우에는 좀 다를 수 있다. 아래의 예시를 보자. # 변수 arr_x를 연관 배열로 선언 declare -A arr_x # 값 할당 arr_x[abc]=10 arr_x[def]=5 arr_x[xyz]=0 # 인덱스 abc에 저장된 내용 출력 echo "${arr_x[abc]}" 10 배열의 인덱스

[bash: ((] 연관 배열(associative array)에 저장된 정수 계산

반달가면|2018년 1월 8일

간혹 실수하는 부분이 있어서 정리해 두기로. 리눅스 bash 스크립트에서의 정수 계산은 이전 게시물을 참고하자. 여기로 리눅스 bash 스크립트에서의 배열(array) 활용은 여기로, 연관 배열(associative array) 활용은 여기로. bash에서 기본적인 정수 계산은 이중 괄호를 사용한다. # 정수 계산 예시 x=3 y=5 echo $((x+y)) 8 배열(array)이라고 특별히 달라질 것은 없어 보인다. # 배열에 저장된 정수 계산 예시 a[0]=3 a[1]=5 echo $((a[0]+a[1])) 8 # 배열 인덱스에 변수 사용 a[0]=3 a[1]=5 x=0 y=1 echo $((a[x]+a[y])) 8 echo $((a[$x

리눅스 bash 스크립트에서 연관 배열(associative array) 사용하기

반달가면|2017년 12월 18일

통상적인 배열(array)에 대한 내용은 이전 게시물을 참고하자. 여기로 리눅스 bash 스크립트에서 연관 배열(associative array)을 사용하는 방법이다. 연관 배열은 인덱스를 수자로 사용하지 않고 문자열을 사용할 수 있다. 변수를 연관 배열로 사용하려면 해당 변수가 연관 배열임을 미리 선언해 주어야 한다. declare 명령으로 선언하면서 -A 옵션으로 연관 배열임을 지정해야 한다. # 변수 arr_test를 연관 배열로 선언 declare -A arr_test 이제 인덱스를 문자열로 사용할 수 있다. 아래의 예시를 보자. # 배열 값 할당 arr_test[abc]=0 arr_test[def]=1 # 배열에 저장된 내용 출력 echo ${arr_test[ab