반응형
Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

/var/log/messages

쉘 스크립트 배열(readarray, mapfile) 본문

카테고리 없음

쉘 스크립트 배열(readarray, mapfile)

로만로만 2023. 9. 17. 22:35
반응형

2주 전에, 일반 배열을 선언하는 방법에 대해서 설명했었습니다.

그런데, 이 일을 하다보면 배열의 원소들을 직접 만드는 것이 아닌, 파일에 존재하는 데이터들을 직접 읽은 후, 원소로 취급하는 배열을 선언할 것 입니다. 이때 사용하는 명령어인 readarray와 mapfile을 권장하고자 합니다.

 

readarray와 mapfile의 사용 권장 이유는 다음과 같습니다.

 

1. 간결성:
readarray와 mapfile은 파일의 내용을 배열로 읽는 작업을 단순화합니다. 
이를 사용하면 몇 줄의 코드로 파일의 각 줄을 배열의 요소로 쉽게 로드할 수 있습니다.


2. 내장 기능:
readarray와 mapfile은 Bash에 내장된 명령어입니다. 따라서 별도의 의존성 없이 사용할 수 있습니다.

3. 유연성:
mapfile은 -t 옵션과 같은 추가적인 옵션을 제공하여, 줄 끝의 개행 문자를 제거하는 등의 기능을 수행할 수 있습니다.

4. 안정성:
readarray와 mapfile은 파일의 각 줄을 안정적으로 배열 요소로 읽습니다. 
일반 배열로 파일 내용을 로드할 때 발생할 수 있는 문제점(예: 공백 또는 특수 문자 처리)을 피할 수 있습니다.

 

이제 비교 및 사용 예시를 통해서 이해해보겠습니다

 

예시 파일 선언

일반 배열로 읽었을 때

코드의 길이를 주목해주세요.

 

이제 readarray를 사용해보겠습니다.

보다 짧은 코드로 동작을 수행할 수 있습니다.

 

마지막으로 mapfile을 이용해서 동일한 동작을 수행하겠습니다.