리눅스 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
'bash script' 카테고리의 다른 글
[bash: date] 현재 시간을 다른 시간대(timezone) 기준으로 출력 (0) | 2024.03.15 |
---|---|
[bash: stat] 파일 크기 확인 (0) | 2024.01.03 |
[bash: sed] 파일에서 특정 문자열이 나오는 곳까지 출력하고 종료 (0) | 2023.12.08 |
리눅스 bash에서 문자열의 특정 범위만 떼어 내기(substring 만들기) (0) | 2023.11.15 |
리눅스 bash 스크립트에서 배열/연관배열 초기화 (0) | 2023.10.17 |