Grep 명령어

onebbu·2023년 3월 28일
0

리눅스

목록 보기
3/6

grep PATTERN FILE

예시: grep "chicken" animals.txt
animals.txt에서 chicken이 있는 행을 표시

  • find와의 차이점: find는 파일명을 검색하고 grep은 파일 내용을 검색

w 옵션

예시: grep -w "cat"
cat이라는 단어는 찾고 cat으로 시작하는 단어는 무시(단어 단위 검색)

r 옵션

예시: grep -r "chicken"
디렉토리 옵션이 없을 경우 현재 디렉토리 및 하위 디렉토리의 모든 파일 검색
ri 옵션으로 대소문자 구분도 가능
예시: grep -r "eggplant" MealDiary/
MealDiary경로의 eggplant가 들어가 있는 파일의 경로 검색

c 옵션(소문자)

grep "chicken" animals.txt -ic
특정 단어(chicken)가 들어간 횟수 확인, i옵션: 대소문자 구분

A / B / C 옵션(대문자)

A 옵션

-A와 숫자를 주면 그 행의 뒷 내용을 숫자 행만큼 표시

B 옵션

-B와 숫자를 주면 그 행의 앞 내용을 숫자 행만큼 표시

C 옵션

-B와 숫자를 주면 그 행의 앞&뒤 내용을 숫자 행만큼 표시
예시: grep -r "grass" SongOfMySelf.txt -iB1
grass가 나온 행과 그 앞의 내용이 표시

n 옵션

검색한 행이 몇번째 행인지를 알려줌
A/B/C 옵션 뒤에 쓸 경우 파라미터 인식을 잘못 하므로 앞에 사용
예시: grep "wagon" SongOfMySelf.txt -nC1

m 옵션

표시되는 개수를 제한
예시: grep "wagon" SongOfMySelf.txt -m1
wagon이 첫번째로 확인되는 행만 보여줌

정규식

.

아무 글자(.의 개수에 따라 글자수 표현 가능)
예시: grep "p...." SongOfMySelf.txt -w
p....의 경우 p이후 아무 글자 4개가 있는 것을 찾아냄

^

행의 시작을 의미
예시: grep "^I" SongOfMySelf.txt -w
^(캐럿)이 없을 때에는 I가 중간에 포함된 행도 보여줌
I로 시작하는 행들을 표시, n옵션을 통해 행번호도 표시 가능

$

행의 끝을 의미
예시: grep ")"SongOfMySelf.txtw</code>)" SongOfMySelf.txt -w</code>(캐럿)이 없을 때에는 )가 중간에 포함된 행도 보여줌
)로 끝나는 행들을 표시, n옵션을 통해 행번호도 표시 가능

[]

범위 집합
21~26을 찾을 경우 grep "2"를 한다면 2나 12도 표시됨
2[1-6] 또는 2[123456]으로 범위 검색

[^범위]

범위를 제외하는 부분 표시
2[^1-6]의 결과: 20,27,28,29

E 옵션(확장정규식)

?

예시: grep "bird?" -wE SongOfMySelf.txt
bird 혹은 bird + 한문자가 들어간 행 검색(ex birds)

{}

예시: grep "[aeiou]{2}" -E SongOfMySelf.txt
2개의 모임이 연속적으로 붙어있는 단어를 검색(2개 이상도 가능하나, 결과가 없을수도 있음)
ex. look, health, your, blood ...

파이프

ps -aux | grep "프로세스명"

ps -aux: 현재 컴퓨터에서 실행되고 있는 모든 프로세스들을 보여줌
예시: ps -aux | grep "sound" i
프로세스명 중 sound가 들어간 프로세스를 검색(i옵션을 통해 대소문자 구분 X)
예시: find ~ -name ".txt" ! -empty type f -exec grep "purple" '{}' ';'
홈 디렉토리에서(~) .txt 파일(-name "
.txt") 중 비어있지 않고(! -empty) 디렉토리가 아니면서(type f) purple이 들어간 파일 검색

0개의 댓글