bash script2023. 12. 12. 08:41

 

리눅스 bash 스크립트에서 명령어 출력 결과를 한 줄씩 배열 원소로 할당하는 방법이다. 예시를 보면 금방 감을 잡을 것이다.

예를 들어 my_file.txt 파일에서 문자열 "abc"가 포함된 행만 골라서 배열에 할당하는 경우를 생각해 보자. 우선 아래와 같이 특정 문자열이 포함된 행만 찾는 명령을 생각해 볼 수 있다.

cat my_file.txt | grep "abc"

이제 이 명령의 출력을 배열에 할당해 보자. 아래와 같이 하면 된다.

readarray arr < <(cat my_file.txt | grep "abc")

"명령어1 < <(명령어2)" 형태를 사용하면 명령어2의 결과를 표준입력(stdin) 형태로 명령어1에 전달한다.

배열의 내용을 확인해 보면, 제대로 할당되었는지 볼 수 있다.

for item in ${arr[*]}
do
  echo "$item"
done

728x90
Posted by 반달가면