리눅스 리다이렉션 & 정규 표현식 기초 정리
리눅스에서 리다이렉션과 정규 표현식은 파일 입출력 제어 및 텍스트 데이터 가공에 있어 필수 기술입니다. 이 글에서는 >, >>, < 등의 리다이렉션 기호와 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등에서 강력한 검색·변환 도구 - 두 기술을 조합하면 자동화 스크립트와 로그 분석, 데이터 처리에 큰 힘이 됩니다.
댓글남기기