리눅스 필터링·리다이렉션·파이프 핵심 정리

여준서·2025년 8월 29일
post-thumbnail

리눅스에서 로그 분석이나 데이터 처리를 배우고 싶어도, 시스템 로그(/var/log/syslog) 같은 파일은 상황에 따라 달라 결과가 바로 나오지 않을 수 있습니다.

그래서 이번 글은 누구나 바로 실습 가능한 연습 파일을 만들어두고, 그 위에서 텍스트 처리와 리다이렉션의 기본 명령어를 연습하는 방식으로 진행합니다.


0. 연습 파일 준비하기

먼저 테스트에 쓸 파일 3개를 만듭니다.

echo -e "apple\nbanana\nApple\norange\nERROR: something failed\nINFO: all good" > sample.txt
echo -e "id,name,status\n1,alice,active\n2,bob,inactive\n3,charlie,active" > data.csv
echo -e '#!/bin/bash\necho "hello world"' > script.sh
  • sample.txt : 과일 이름 + 로그 메시지
  • data.csv : 간단한 유저 데이터
  • script.sh : 테스트용 스크립트

1. grep (문자열 검색)

파일에서 원하는 문자열만 골라낼 수 있습니다.

grep apple sample.txt

→ apple이 포함된 줄 출력

grep -i apple sample.txt

→ 대소문자 무시하고 apple 검색

grep -v INFO sample.txt

→ INFO 없는 줄만 출력


2. less / head / tail (파일 읽기)

대용량 파일을 한눈에 확인할 수 있습니다.

less sample.txt

→ 방향키로 이동, /apple로 검색 가능

head -3 sample.txt

→ 처음 3줄만 출력

tail -2 sample.txt

→ 마지막 2줄만 출력


3. cut / awk (컬럼 추출)

CSV처럼 구분자로 나눠진 데이터를 뽑아낼 때 유용합니다.

cut -d',' -f2 data.csv

→ 두 번째 컬럼(name)만 출력

awk -F',' '{print $1,$3}' data.csv

→ id와 status 컬럼만 출력


4. sed (문자열 치환)

텍스트 안의 문자열을 바꿀 수 있습니다.

sed 's/apple/APPLE/' sample.txt

→ apple → APPLE (첫 번째만 변경)

sed 's/apple/APPLE/g' sample.txt

→ apple이 등장하는 모든 위치 변경


5. 리다이렉션 (출력 제어)

명령어 결과를 파일로 저장하거나, 에러만 따로 모을 수 있습니다.

ls > files.txt

→ 현재 디렉토리 목록을 files.txt에 저장

echo "new line" >> sample.txt

→ sample.txt 맨 뒤에 줄 추가

cat not_exist.txt 2> error.txt

→ 없는 파일 실행 시 발생한 에러 메시지를 error.txt에 저장


6. 파이프(|) (명령어 연결)

명령어를 이어 붙여서 한 줄로 처리할 수 있습니다.

cat sample.txt | grep "apple" | wc -l

→ apple이 포함된 줄 개수 출력

cat data.csv | grep "active" | cut -d',' -f2

→ active 상태의 name만 추출


7. find (파일 검색)

특정 파일을 빠르게 찾을 수 있습니다.

find . -name "*.sh"

→ 현재 디렉토리에서 .sh 파일 검색


✅ 마무리

이번 글에서는 연습용 파일을 직접 만들어두고, 바로 실행 가능한 명령어들을 모아 실습해봤습니다.

  • grep : 문자열 검색
  • head / tail : 일부 줄 확인
  • cut / awk : 특정 컬럼 추출
  • sed : 문자열 치환
  • 리다이렉션 / 파이프 : 출력 제어와 명령어 연결
  • find : 파일 검색

👉 이 명령어들만 익혀도 기본적인 로그 분석·데이터 처리 자동화는 바로 시작할 수 있습니다.

profile
블로그 이전했습니다 https://duwnstj.github.io

0개의 댓글