리눅스 특정 문자열 찾기 명령어 - grep명령어
리눅스에서 명령어 출력결과나 파일의 특정 문자열이 포함된 열을 봐야하는 경우가 있다.
이때 사용하는 명령어가 grep명령어이다.
more명령어는 파일이나 명령어의 출력결과 중 특정 문자열이 포함된 열을 보여준다.
주로 다른 명령어의 결과를 파이프라인을 이용하여 grep으로 특정 문자열을 출력해 내는데 자주 사용한다.
grep [option] pattern filename1, filename2, ...
파일명 대신 *를 사용하면 현재 디렉터리 내 모든 파일에 대해서 점검한다.
주요옵션
리눅스 버전에 따라 옵션이 차이가 있을 수 있음
옵션 | 설명 |
-c | 패턴과 일치하는 줄의 개수를 출력한다. |
-i | 대소문자를 구분하지 않고 검색한다. |
-n | 줄 번호를 함께 출력한다. |
-v | 패턴과 일치하지 않는 줄을 출력한다. |
-w | 패턴과 단어 전체가 일치하는 라인만 출력한다. |
-x | 패턴과 라인 전체가 일치하는 라인만 출력한다. |
-l | 패턴이 일치하는 줄이 있는 파일의 이름을 출력한다. |
-r | 하위 디렉터리까지 포함하여 검색한다. |
사용예시 및 사용화면
사용 샘플파일로
b.txt, c.txt 2개의 파일을 만들었다.
파일의 내용은 아래와 같다.
b.txt
b1
b2 2 2
b3
...
b14
b15.
c.txt
c1
c2
c3
c4
c5
▼ grep b1 b.txt(b.txt파일에서 b1이라는 문자열이 포함된 라인을 출력)
b.txt파일에서 b1이 포함된 줄을 모두 출력해준다.
▼ grep b1 *(현재 디렉터리 내 b1이 포함된 라인을 출력)
현재 경로 내에서 b1이 포함된 라인을 파일명과 함께 출력해준다.
▼ grep -c b1 b.txt(b.txt파일에서 b1이 포함된 라인의 개수를 출력)
b1이 포함된 라인은 b1, b10, b11, b12, b13, b14, b15.로 총7개이므로 7이 출력되었다.
▼ grep -n b1 b.txt(줄번호와 함께 출력)
줄 번호가 함께 출력되고 있다.
▼ grep -v b1 b.txt(b1을 제외한 라인을 출력)
b1을 제외한 라인들이 출력되고 있다.
▼ grep -w b1 b.txt(b1이 단어전체로 포함되는 라인이 있는 라인을 출력)
b1이 단어전체로 포함되는 라인만 출력되었다.
위의 경우와는 다르게 b11, b12 등 b1이 단어에 일부 포함되는 라인들이 제외되었다.
▼ grep -x b2 b.txt, grep -x "b2 2 2" b.txt
-x옵션을 주었을 때는 b2가 포함되었지만 전체 라인과 일치하지 않아 출력되지 않았다.
전체 라인 글인 "b2 2 2"를 입력해 주었을때는 출력이 되었다.(뛰어쓰기 때문에 파일로 인식되기 때문에 ""으로 패턴을 묶어주었다.)
▼ grep -l c b.txt c.txt
c가 포함된 라인이 있는 파일명을 찾아주었다.
'운영체제 > 리눅스, 유닉스' 카테고리의 다른 글
[리눅스] cron crontab 명령어(예약된작업, 백업 등) (0) | 2018.12.05 |
---|---|
[리눅스]ps명령어(프로세스 확인 명령어, 특정 프로세스 확인) (0) | 2018.10.22 |
[리눅스]more명령어(리눅스 긴 파일 확인, 페이지 단위 출력) (0) | 2018.10.17 |
[리눅스] head, tail 명령어(리눅스 파일 시작, 끝 출력 명령어) (0) | 2018.09.30 |
[리눅스]cat명령어(리눅스 화면출력, 출력, 연결 명령어) (0) | 2018.09.28 |