본문 바로가기
Computer Science/RHCSA® REDHAT9

[RHCSA #6] Chapter4: 텍스트 파일 관리 (Redhat 9)

by rnasterofmysea 2024. 11. 24.
반응형

리눅스 텍스트 파일 관리

텍스트 파일은 리눅스 시스템에서 설정 관리, 로그 분석, 데이터 처리 등 다양한 역할을 합니다. 이번 포스팅에서는 텍스트 파일을 다루는 데 필수적인 명령어와 활용법을 상세히 알아봅니다.


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

 

.

반응형