2 분 소요

리눅스에서 리다이렉션정규 표현식은 파일 입출력 제어 및 텍스트 데이터 가공에 있어 필수 기술입니다. 이 글에서는 >, >>, < 등의 리다이렉션 기호와 grep, sed, awk에서 활용하는 정규 표현식 문법을 함께 정리하여 초보자도 실습할 수 있도록 구성했습니다.


1. 리다이렉션(Redirection) 명령어

리다이렉션은 명령어의 입력/출력 흐름을 변경하는 기능으로, 파일 저장·데이터 전달·로그 기록 등에 유용하게 사용됩니다.

1.1 표준 출력 리다이렉션

기호 설명 예시
> 출력 결과를 파일에 덮어쓰기 echo "Hello" > out.txt
>> 출력 결과를 파일에 추가 echo "추가 라인" >> out.txt

Tip: 로그를 누적 기록할 때는 »를 사용하세요.


1.2 표준 입력 리다이렉션

  • 형식:

    명령어 < 파일명
    
  • 예시:

    cat < input.txt  # 파일 내용을 입력으로 받아 출력
    

1.3 입력과 출력을 동시에 리다이렉션

  • 예시:

    sort < data.txt > sorted.txt
    

    data.txt를 정렬한 후 sorted.txt로 저장


2. 정규 표현식(Regex) 기초

정규 표현식은 특정 문자열 패턴을 찾거나 치환할 때 사용됩니다. grep, sed, awk 같은 도구에서 매우 강력하게 활용됩니다.


2.1 기본 문자 패턴

표현 설명 예시
. 임의의 한 문자 h.t → hot, hat
[aeiou] a 또는 e 또는 i… gr[ae]y → gray, grey
[^aeiou] 모음 제외 [^aeiou] → b, c, d…

2.2 반복 및 개수 제어

표현 의미 예시
* 0회 이상 반복 lo* → l, lo, loo
+ 1회 이상 반복 go+ → go, goo
? 0 또는 1회 colou?r → color, colour
{n,m} 최소 n회, 최대 m회 a{2,4} → aa, aaa, aaaa

2.3 앵커 문자 (문자열 위치 지정)

표현 설명 예시
^ 시작 위치 ^The → The로 시작하는 줄
$ 끝 위치 end$ → end로 끝나는 줄

2.4 기타 메타 문자

표현 설명 예시
\\. 마침표 문자 자체 file\\.txt
` ` OR 연산자
() 그룹화 (ab)+ → ab, abab, ababab

3. 실전 명령어 예제

grep – 텍스트 검색

grep "error" logfile.txt         # 단순 문자열 검색
grep -n "fail" report.txt        # 줄 번호 포함 검색
grep -E "^a.*z$" words.txt       # 'a'로 시작, 'z'로 끝나는 패턴

sed – 문자열 치환

sed 's/foo/bar/' file.txt        # 첫 번째 foo를 bar로 변경
sed 's/foo/bar/g' file.txt       # 모든 foo를 bar로 변경

awk – 조건별 출력

awk '/error/ {print $1}' log.txt # "error" 포함된 줄에서 첫 필드 출력
awk '{print $1, $NF}' data.txt   # 첫 필드와 마지막 필드 출력

질문 정리

>>>의 차이는 뭔가요?

  • >는 기존 내용을 덮어쓰기
  • >>는 기존 내용 뒤에 추가

grep에서 대소문자 무시하려면?

grep -i "pattern" file.txt

sed에서 한 줄 안의 모든 단어를 치환하려면?

sed 's/old/new/g' file.txt

awk에서 특정 열만 출력하려면?

awk '{print $2}' file.txt  # 두 번째 필드만 출력

정규 표현식에서 와 +의 차이는?

  • : 0회 이상 반복
  • +: 1회 이상 반복 (단, grep에서는 E 또는 egrep 필요)

정리

  • 리다이렉션(>, >>, <) 은 파일 입출력 방향을 제어
  • 정규 표현식grep, sed, awk 등에서 강력한 검색·변환 도구
  • 두 기술을 조합하면 자동화 스크립트로그 분석, 데이터 처리에 큰 힘이 됩니다.

카테고리:

업데이트:

댓글남기기