본문 바로가기
Linux/CentOS7

grep 패턴 매칭 라인 출력

by refer 2024. 11. 28.
반응형

[개념]

grep는 (Globally find Regular-Expression and Print) 의 약어이며 지정된 파일 내의 특정 문자나 단어를 검색하는 명령어로서 파일 편집이나 특정 문자를 포함한 단어를 찾는데 매우 유용하게 사용된다.

추가로 지정된 파일 내에서 특정 문자가 몇 개나 들어있는가를 확인할 때에도 유용하게 사용되며, 특정 문자가 포함된 행 자체를 출력하여 확인할 때에도 빈번하게 사용된다.

grep는 대소문자를 구분하여 검색한다. 만약 대소문자를 구분하지 않는 검색을 하려면 -i 옵션을 사용한다.

또한 압축된 파일 내에서 특정 문자나 단어를 검색하는 zgrep, bzgrep, xzgrep, zipgrep도 매우 유용하고, egrep은 grep의 

확장된 명령어로서 파일 내의 특정 문자를 확장된 정규표현으로 검색한다. 또한 fgrep는 파일 내의 특정 문자열을 고정된 문자열로만 인식하여 검색한다.

즉, egrep는 grep -E 명령과 같고, fgrep는 grep -F 명령과 같다.


[사용법]

grep의 가장 기본적인 기능은 지정된 파일 내에서 특정 문자를 찾는 것이다.

예) grep 찾을문자 대상파일 형식으로 명령을 내린다. 

      grep fileList /test/ls1


[정규표현]

자주 사용되는 검색문자패턴 정규표현을 확인하자.

정규표현 의미
? 아무 문자나 한 문자를 의미
* 어떤 문자열이나 문자 길이에 무관한 문자열을 의미
^ 행의 시작 위치를 의미
$ 행의 마지막 위치를 의미
[ ] 한 문자 길이의 패턴 리스트
[^ ] 지정된 문자들 이외의 문자들을 의미(^는 여집합을 의미)
\ 뒤에 오는 문자를 문자 그대로 인식(특수 문자를 그대로 표현할 때 사용)
/< 단어의 시작 위치를 의미
/> 단어의 마지막 위치를 의미

[옵션]

옵션 기능
-c , --count 특정 문자를 포함한 행의 개수를 출력한다
-v 특정 문자를 포함하지 않는 행만 검색한다
-E , --extended-regexp PATTERN을 확장된 정규표현으로 해석한다
-e PATTERN PATTERN을 찾을 문자로 사용. -로 시작하는 패턴들을 보호하기 위해 유용하다
-F , --fixed-strings PATTERN을 고정된 문자열의 목록으로 해석하여, 그것 모두에 일치하는 행들을 출력한다
-i 대소문자 구분 없이 특정 문자를 검색한다
-l 입력 파일의 일반 출력을 무시하고 찾을 문자와 일치하는 입력 파일의 이름을 보여준다
-n 각 행을 입력 파일 내의 행 번호와 함께 출력한다
-r 각 디렉토리 아래의 모든 파일들을 읽는다
-w 전체 단아와 일치하는 단어들을 포함하는 행만 출력한다
-x 정확하게 전체 행과 일치하는 행들만 출력한다

[테스트1]

특정 문자가 존재하지 않는 행만 검색하는 예


[테스트2]

파일에서 ls1 라는 문자를 포함하지 않는 행의 개수가 몇 개인가를 출력하기 위해

-v 옵션과 -c 옵션을 같이 사용한 예


[테스트3]

대소문자를 구분하지 않도록 하는 예

-i 옵션


[테스트4]

대소문자 구분없이 file라는 문자열을 포함한 행이 몇 개나 있는지 확인하는 예

-i옵션과 -c옵션 같이 사용한 예


[테스트5]

다음은 정규표현 파이프( | ) 와 grep 명령을 사용하여 d문자행의 시작 위치를 나타내는 예

행들 시작점에서 d인 디렉토리만 보고 싶을때 사용한다.

l을 보고 싶을 때 정규표현 뒤 l로 바꾸면 l행들 목록만 보인다.


[테스트6]

지정된 위치에서 특정 문자를 찾을 때 가장 많이 사용된다.


 

반응형

'Linux > CentOS7' 카테고리의 다른 글

split 파일 자르기  (0) 2024.11.29
sort 파일 내용 정렬  (0) 2024.11.29
cut 파일 각 라인 필드 출력  (0) 2024.11.28
wc 파일 내용 통계  (0) 2024.11.28
diff 파일 내용 비교  (0) 2024.11.26