/var/log/messages
쉘 스크립트 배열(readarray, mapfile) 본문
반응형
2주 전에, 일반 배열을 선언하는 방법에 대해서 설명했었습니다.
그런데, 이 일을 하다보면 배열의 원소들을 직접 만드는 것이 아닌, 파일에 존재하는 데이터들을 직접 읽은 후, 원소로 취급하는 배열을 선언할 것 입니다. 이때 사용하는 명령어인 readarray와 mapfile을 권장하고자 합니다.
readarray와 mapfile의 사용 권장 이유는 다음과 같습니다.
1. 간결성:
readarray와 mapfile은 파일의 내용을 배열로 읽는 작업을 단순화합니다.
이를 사용하면 몇 줄의 코드로 파일의 각 줄을 배열의 요소로 쉽게 로드할 수 있습니다.
2. 내장 기능:
readarray와 mapfile은 Bash에 내장된 명령어입니다. 따라서 별도의 의존성 없이 사용할 수 있습니다.
3. 유연성:
mapfile은 -t 옵션과 같은 추가적인 옵션을 제공하여, 줄 끝의 개행 문자를 제거하는 등의 기능을 수행할 수 있습니다.
4. 안정성:
readarray와 mapfile은 파일의 각 줄을 안정적으로 배열 요소로 읽습니다.
일반 배열로 파일 내용을 로드할 때 발생할 수 있는 문제점(예: 공백 또는 특수 문자 처리)을 피할 수 있습니다.
이제 비교 및 사용 예시를 통해서 이해해보겠습니다
예시 파일 선언
일반 배열로 읽었을 때
코드의 길이를 주목해주세요.
이제 readarray를 사용해보겠습니다.
보다 짧은 코드로 동작을 수행할 수 있습니다.
마지막으로 mapfile을 이용해서 동일한 동작을 수행하겠습니다.