반응형
리눅스 텍스트 파일 관리
텍스트 파일은 리눅스 시스템에서 설정 관리, 로그 분석, 데이터 처리 등 다양한 역할을 합니다. 이번 포스팅에서는 텍스트 파일을 다루는 데 필수적인 명령어와 활용법을 상세히 알아봅니다.
1. 텍스트 파일 읽기 도구
1.1 cat (concatenate)
- 텍스트 파일의 내용을 출력하거나 여러 파일을 합칠 때 사용합니다.
사용법:
cat file1.txt # 파일 출력
cat file1.txt file2.txt # 두 파일의 내용 출력
cat file1.txt > newfile.txt # 파일을 새로운 파일로 복사
옵션:
- -n: 각 줄에 번호를 추가.
- -E: 줄 끝에 $ 표시.
1.2 less
- 대용량 파일을 페이지 단위로 탐색할 수 있습니다.
- 파일을 읽는 데 최적화된 도구로, 메모리 효율이 높습니다.
사용법:
less largefile.log
주요 단축키:
- Space: 다음 페이지로 이동.
- b: 이전 페이지로 이동.
- /keyword: 특정 단어 검색.
- q: 종료.
1.3 head와 tail
- head: 파일의 처음 몇 줄을 출력합니다.
- tail: 파일의 마지막 몇 줄을 출력합니다.
사용법:
head -n 5 sample.txt # 처음 5줄 출력
tail -n 10 sample.txt # 마지막 10줄 출력
tail -f logfile.log # 실시간 로그 확인
2. 텍스트 파일 데이터 처리 도구
2.1 cut
- 특정 구분자를 기준으로 열을 추출합니다.
사용법:
cut -d ',' -f 2 data.csv # 콤마(,)로 구분된 파일의 두 번째 열 추출
cut -c 1-5 file.txt # 각 줄에서 첫 번째부터 다섯 번째 문자 추출
옵션:
- -d: 구분자 지정 (기본값은 탭).
- -f: 출력할 필드 번호.
2.2 sort
- 파일을 정렬합니다.
사용법:
sort data.txt # 기본 정렬
sort -n numbers.txt # 숫자 기준 정렬
sort -r data.txt # 역순 정렬
sort -k 2 -t ',' data.csv # 두 번째 열 기준 정렬 (콤마 구분)
2.3 uniq
- 중복된 줄을 제거하거나 카운트합니다. sort와 함께 사용하는 경우가 많습니다.
사용법:
sort data.txt | uniq # 중복 제거
sort data.txt | uniq -c # 중복 줄의 개수 표시
sort data.txt | uniq -u # 중복되지 않은 줄만 출력
2.4 wc (word count)
- 파일의 행, 단어, 문자 수를 계산합니다.
사용법:
wc file.txt # 전체 행, 단어, 문자 수 출력
wc -l file.txt # 행 수만 출력
wc -w file.txt # 단어 수만 출력
3. grep과 정규표현식
3.1 grep
- 텍스트 파일에서 특정 패턴을 검색합니다.
사용법:
grep 'error' logfile.txt # 'error' 포함된 줄 검색
grep -i 'Error' logfile.txt # 대소문자 무시하고 검색
grep -v 'info' logfile.txt # 'info'를 제외한 줄 출력
grep -E 'error|failure' logfile.txt # 여러 패턴 검색
정규표현식 활용:
- ^pattern: 줄의 시작과 일치.
- pattern$: 줄의 끝과 일치.
- .*: 임의의 문자(0개 이상)와 일치.
예제:
grep '^ERROR' logfile.txt # 'ERROR'로 시작하는 줄 검색
grep 'completed$' logfile.txt # 'completed'로 끝나는 줄 검색
4. 고급 텍스트 처리 도구
4.1 awk
- 텍스트 데이터를 분석하고 특정 열을 추출하거나 조작할 때 사용됩니다.
사용법:
awk '{print $1}' file.txt # 첫 번째 열 출력
awk -F ',' '{print $2, $3}' data.csv # 콤마 구분자로 두 번째, 세 번째 열 출력
awk '/error/ {print $0}' file.txt # 'error' 포함된 줄 출력
4.2 sed
- 텍스트를 치환하거나 편집하는 데 사용됩니다.
사용법:
sed 's/old/new/g' file.txt # 'old'를 'new'로 대체
sed -n '2,5p' file.txt # 2~5번째 줄 출력
sed '/error/d' file.txt # 'error' 포함된 줄 삭제
5. 실습 과제
실습 1: 로그에서 에러 메시지 카운트
grep 'error' /var/log/messages | wc -l
실습 2: 특정 열 정렬 및 중복 제거
cut -d ',' -f 1 data.csv | sort | uniq > unique_values.txt
실습 3: 특정 키워드 포함된 줄 복사
grep 'critical' system.log > critical_errors.log
.
반응형
'Computer Science > RHCSA® REDHAT9' 카테고리의 다른 글
[RHCSA #8] Chapter 6: 사용자 및 그룹 관리(Redhat 9) (0) | 2024.11.26 |
---|---|
[RHCSA #7] Chapter 5: SSH 원격접속(Redhat 9) (0) | 2024.11.25 |
[RHCSA #5] Chapter3: tar 정복하기 (Redhat 9) (0) | 2024.11.23 |
[RHCSA #4] Chapter 3: 필수 파일 관리 도구 (0) | 2024.11.23 |
[RHCSA #3] Chapter 2: Using Essential Tools 문제 (0) | 2024.11.22 |