반응형
Bash 스크립트에서 파일 입출력은 데이터를 읽고 쓰는 기본적인 작업입니다. 이 글에서는 cat
, tee
, 그리고 >
명령어를 사용하여 파일 입출력을 다루는 방법을 설명합니다. 각각의 명령어와 활용 예제를 통해 Bash 스크립트 작성에 대한 이해를 돕겠습니다.
1. cat
명령어로 파일 읽기
cat
(concatenate)은 파일의 내용을 출력하거나 여러 파일의 내용을 결합할 때 사용됩니다.
기본 사용법
cat [옵션] [파일명]
주요 옵션
-n
: 출력 라인에 번호 추가-E
: 각 줄 끝에$
표시
예제
파일 내용 출력
# sample.txt의 내용을 출력합니다.
cat sample.txt
파일 여러 개 결합
# file1.txt와 file2.txt를 결합하여 출력합니다.
cat file1.txt file2.txt
출력 라인 번호 추가
cat -n sample.txt
줄 끝에 $
추가
cat -E sample.txt
스크립트 활용 예제
#!/bin/bash
# 모든 txt 파일의 내용을 결합하여 하나의 파일로 저장
output_file="merged.txt"
cat *.txt > $output_file
echo "모든 txt 파일이 $output_file에 병합되었습니다."
2. tee
명령어로 출력 저장 및 화면 출력
tee
는 데이터를 표준 출력(화면)으로 출력하면서 동시에 파일에 저장할 수 있습니다.
기본 사용법
command | tee [옵션] [파일명]
주요 옵션
-a
: 파일에 내용을 추가 (append)
예제
표준 출력과 파일 저장
echo "Hello, World!" | tee output.txt
파일에 내용 추가
echo "추가 내용" | tee -a output.txt
여러 파일에 동시에 저장
echo "여러 파일 저장" | tee file1.txt file2.txt
스크립트 활용 예제
#!/bin/bash
# 시스템 업데이트 로그를 저장 및 출력
log_file="update.log"
echo "시스템 업데이트를 시작합니다."
sudo apt update | tee -a $log_file
echo "시스템 업데이트 완료. 로그는 $log_file에 저장되었습니다."
3. >
와 >>
로 파일에 데이터 쓰기
Bash에서 >
와 >>
는 출력 리다이렉션에 사용됩니다.
기본 사용법
>
: 파일에 새로운 내용 쓰기 (기존 내용 덮어쓰기)>>
: 파일 끝에 내용 추가 (append)
예제
파일 생성 및 쓰기
echo "새로운 파일 내용" > newfile.txt
파일에 내용 추가
echo "추가 내용" >> newfile.txt
명령어 출력 저장
ls -l > directory_list.txt
스크립트 활용 예제
#!/bin/bash
# 시스템 리소스 상태를 파일로 저장
output_file="system_status.txt"
echo "CPU 정보:" > $output_file
lscpu >> $output_file
echo "메모리 정보:" >> $output_file
free -h >> $output_file
echo "디스크 정보:" >> $output_file
df -h >> $output_file
echo "$output_file에 시스템 상태 정보가 저장되었습니다."
4. 세 명령어를 조합하여 활용하기
cat
, tee
, >
, >>
를 조합하면 강력한 입출력 작업이 가능합니다.
예제
여러 파일 병합 및 저장
#!/bin/bash
# 텍스트 파일 병합 및 결과 저장
echo "파일 병합을 시작합니다."
output_file="merged_files.txt"
cat file1.txt file2.txt | tee $output_file
echo "병합된 내용이 $output_file에 저장되었습니다."
명령어 출력 병합 및 로그 저장
#!/bin/bash
# 디렉토리와 파일 정보를 결합하여 저장
log_file="directory_info.log"
echo "디렉토리 정보:" | tee $log_file
ls -l | tee -a $log_file
echo "현재 디스크 상태:" | tee -a $log_file
df -h | tee -a $log_file
echo "정보가 $log_file에 저장되었습니다."
결론
Bash에서 파일 입출력은 스크립트 작성에 필수적인 부분입니다. cat
, tee
, 그리고 >
를 활용하여 효율적으로 파일을 읽고 쓰며, 데이터를 결합하거나 저장할 수 있습니다. 위의 예제와 스크립트를 참고하여 실습해 보세요. Bash 파일 입출력의 유용성을 더욱 체감할 수 있을 것입니다.
반응형
'Linux Bash shell script' 카테고리의 다른 글
Bash Shell Script 파이프라인(Pipeline)을 활용한 명령어 조합 (0) | 2025.02.02 |
---|---|
Bash Shell Script 프로세스 종료 및 제어 (kill, ps, top) (0) | 2025.01.31 |
Bash Shell Script 백그라운드 실행 (&, jobs, fg, bg) (0) | 2025.01.30 |
Bash Shell Script 디렉토리 탐색 (find, xargs) (0) | 2025.01.29 |
Bash Shell Script 파일 생성, 삭제, 복사 (touch, rm, cp, mv) (0) | 2025.01.29 |