1. 리눅스에서 특정 문자를 찾는 방법
'grep' 은 "Global Regular Expression Print"의 약자로, 텍스트 파일에서 특정 문자열을 검색하고 해당 문자열이 포함된 줄을 출력해 주는 명령어이다. 'grep'은 단순한 검색뿐만 아니라, 정규 표현식을 이용한 복잡한 패턴 매칭도 가능하다.
grep '찾을_문자열' 파일이름
# 예시. example.txt 파일에서 "hello"가 포함된 모든 줄이 출력
grep 'hello' example.txt
2. 다양한 'grep' 옵션들
1) 대소문자 무시 (-i 옵션)
grep은 대소문자를 구분하여 검색한다. 하지만 -i 옵션을 사용하면 대소문자를 구분하지 않고 검색할 수 있다.
# "hello", "HELLO", "Hello" 등 대소문자 조합에 관계없이 "hello"를 포함하는 모든 줄을 찾아준다.
grep -i 'hello' example.txt
2) 줄 번호 표시 (-n 옵션)
검색 결과가 파일의 어느 줄에 위치하는지 알고 싶을 때는 -n 옵션을 사용한다.
grep -n 'hello' example.txt
# 아래와 같은 형식으로 출력
3: hello world
3) 일치하지 않는 줄 출력 (-v 옵션)
grep은 기본적으로 일치하는 줄을 출력하지만, -v 옵션을 사용하면 일치하지 않는 줄을 출력할 수 있다.
# "hello"가 포함되지 않은 모든 줄을 출력
grep -v 'hello' example.txt
4) 하위 디렉토리까지 검색 (-r 옵션)
특정 디렉토리 내의 모든 파일에서 문자열을 검색하고 싶을 때는 -r 옵션을 사용하여 하위 디렉토리까지 재귀적으로 검색할 수 있다.
# /path/to/directory 디렉토리 내의 모든 파일에서 "hello"를 찾음
grep -r 'hello' /path/to/directory
5) 정규 표현식 사용
grep은 정규 표현식을 기본적으로 지원한다. 이를 통해 더욱 복잡한 패턴 매칭을 할 수 있다.
# "h"로 시작하고 "llo"로 끝나는 모든 문자열을 찾음. ex) "hello", "h3llo" 등
grep 'h.llo' example.txt