ARRAY

포스트: 10|조회수: 0|PERSON
Items

Posts

10 posts

리눅스 bash 스크립트에서 배열/연관배열 초기화

반달가면|2022년 8월 3일

bash 스크립트에서 사용중이던 배열(array) 또는 연관배열(associative array)의 모든 원소를 삭제하고 싶다면 빈 배열을 할당하면 된다. x[0]='abc' x[1]='def' # x 초기화 x=() 연관배열도 동일하다. declare -A a_x a_x[abc]=1 a_x[aaa]=2 # a_x 초기화 a_x=() 배열의 사용에 대한 추가적인 내용은 아래의 링크를 참고하자.

상관 관계 자료를 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 스크립트에서 텍스트 파일을 읽어서 한 줄씩 배열(array) 원소로 할당하기 - 2 (readarray)

반달가면|2018년 10월 25일

bash 스크립트에서 텍스트 파일의 각 행을 배열(array)에 할당하는 방법을 예전에 기록해 두었었는데(여기에), 훨씬 더 간단하고 편리한 방법을 발견했다. 예전에 적었던 방법은 한줄씩 구분해서 할당하기 위해 내부 필드 구분자(internal field separator) 설정(변수 IFS)을 바꿔야 해서 귀찮았는데, readarray라는 명령을 이용하면 이런 과정이 필요 없다. # test.txt 파일을 읽어서 각 행을 배열 arr에 할당 readarray arr < test.txt # 첫번째 행 출력 echo "${arr[0]}" 리눅스 bash 스크립트의 배열에 대한 기본적인 내용은 이전 게시물을 참고하자. 여기로

리눅스 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 배열의 인덱스