Linux의 Bash 스크립트에서 파일의 내용을 읽는 방법을 소개합니다.
먼저 아래와 같이 file.txt
파일을 만들었습니다. 이 글의 예제에서는 이 파일을 읽을 것입니다.
# file.txt
Hello, World!
Sample text file!
1. cat을 이용하여 파일 읽기
cat으로 파일의 모든 내용을 변수에 저장하고, 그 변수를 echo로 출력할 수 있습니다.
#!/bin/bash
value=`cat file.txt`
echo "$value"
Output:
$ bash example.sh
Hello, World!
Sample text file!
2.'$()'를 이용하여 파일 읽기
value=$(<file.txt)
는 파일의 내용을 변수에 저장합니다. 그리고 echo로 변수의 내용을 출력할 수 있습니다.
#!/bin/bash
value=$(<file.txt)
echo "$value"
Output:
$ bash example.sh
Hello, World!
Sample text file!
3. read를 이용하여 한 줄씩 읽기
while과 read를 이용하여 파일의 내용을 한 줄씩 읽을 수 있습니다.
다음과 같은 형태로 한 줄씩 읽고, 반복문 내에서 데이터를 가공할 수 있습니다.
#!/bin/bash
i=1
while read line || [ -n "$line" ] ; do
echo "Line $i: $line"
((i+=1))
done < file.txt
Output:
$ bash example.sh
Line 1: Hello, World!
Line 2: Sample text file!
3.1 '[ -n "$line" ]' 조건이 필요한 이유
read는 Line에 개행문자가 포함되어있어야 Line으로 인식하고 True를 리턴합니다. 만약 마지막 줄을 읽었을 때, 개행문자가 없다면 False가 리턴되어 반복문이 종료됩니다. 이 때문에 마지막 Line가 처리되지 않을 수 있습니다.
테스트 연산자 -n
은 문자열의 길이가 0이 아닐 때 True를 리턴합니다. 마지막 Line에 개행문자가 없어도 Empty String이 아니기 때문에 True가 되어 반복문이 수행됩니다.
다음과 같이 반복문에 read line
조건만 추가하고 스크립트를 실행하면 마지막 줄이 출력되지 않는 것을 확인할 수 있습니다.
#!/bin/bash
i=1
while read line; do
echo "Line $i: $line"
((i+=1))
done < file.txt
Output:
$ bash example.sh
Line 1: Hello, World!
Loading script...
Related Posts
- Bash Shell - 문자열에서 마지막 문자 N개 제거
- Bash Shell - 문자열에서 첫번째 문자 N개 제거
- Bash Shell - 실행 시간 측정 방법
- Bash Shell - 나눗셈에서 버림, 올림, 반올림 처리
- Bash Shell - 숫자가 양수인지 음수인지 확인하는 방법
- Bash Shell - 자신의 스크립트 파일 이름 가져오기
- Bash Shell - 문자열 출력 방법(echo, printf)
- Bash Shell - seq 명령어로 반복문 구현 및 예제
- Bash Shell - File 테스트 연산자
- Bash Shell - 무한 루프 (Infinite loop)
- Bash Shell - 숫자 비교 연산자
- Bash Shell - 문자열 비교 연산자
- Bash Shell - 대문자, 소문자로 변환 (Uppercase, Lowercase)
- Bash Shell - 스트립트를 root로 실행했는지 확인
- Bash Shell - 명령어 실행 결과를 변수에 저장
- Bash Shell - select로 선택 메뉴 구현
- Bash Shell - 변수가 정의되었는지 확인하는 방법
- Bash Shell - sleep 함수, 특정 시간 멈추기
- Bash Shell - 파일이 존재하는지 확인
- Bash Shell - 문자열 자르기 (substring, split)
- Bash Shell - 날짜, 시간 가져오기
- Bash Shell - Case 조건문
- Bash Shell - 파일 읽는 방법
- Bash Shell - 사용자로부터 입력 받기
- Bash Shell - 문자열을 연결하는 방법
- Bash Shell - 파일 생성 및 문자열 추가
- Bash Shell - 숫자 변수 증가/감소 시키기
- Bash Shell - 배열 할당, 길이, 객체 포함 여부 확인
- Bash Shell - 문자열 비교, 문자열 포함 여부 확인
- Bash Shell - 변수 선언, 할당
- Bash Shell - 조건문(if-else)
- Bash Shell - 숫자 연산 (더하기, 빼기, 곱하기, 나누기)
- Bash Shell - 반복문(for, while, until loop)
- Bash Shell - Command Line으로 전달된 인자 받기
- Bash Shell - 함수(Function)