♥신뢰할수 있는 뉴스만 전하는♥

Linux : (기본명령어) grep / watch 본문

리눅스

Linux : (기본명령어) grep / watch

모두의유머 2019. 4. 23. 17:06

grep (기본 명령어)

 

#grep (Globally find Regular-Expression and Print)

파일 내용 중 정규식 패턴에 일치하는 문자열을 찾아 화면에 출력 (원하는 결과만 뽑는 것)

#grep [Pattern] [file]

→ 옵션 (명령의 세부 기능)

-i (ignore-case) 대소문자를 구별하지 않는다.

-n (--line-number) 행 번호를 함께 보여준다.

-v (--revert-match) 정규식에 일치하지 않는 행만 보여준다.

-r (--recursive) 하위 디렉토리에 위치한 파일도 검색한다.

 

정규식(Regular Expressions), 레젝스(Regex)라고 부르기도 합니다.

- 정규식은 텍스를 조작, 처리하기 위해 만들어짐

 (보통 검색과 치환을 위한 용도로 쓰임)

 

 grep 명령어 하이라이트 옵션 설정하기 

- grep 명려어 사용 시 패턴과 일치하는 부분은 하이라이트 처리하여 가독성을 높여준다.

alias grep='grep --color=auto' alias로 설정한다.

<예제>

 

 grep 명령어 사용 시 주의사항 

bash shell의 와일드카드를 이용해서 다음과 같이 hello로 시작되는 모든 파일을 출력합니다.

일단 echo를 이용하여 테스트용 파일을 생성해줍니다.

 

cat 명령어를 이용하여 각 파일에 내용을 확인해줍니다.

 

 

와일드 카드 문자를 사용하여 확인해줍니다.

 

1. ls abc* / 2. grep abc* / 3. grep abc* abc*

 

이유 : 정규식 패턴이 오는 부분으로 패턴과 두번째 인자인 파일 인자를 구분 지어주지 않으면 Shell은 정규식에서 사용하는 특수문자(*)를 Shell 메타 문자(*)로 확장 해석합니다.

 

쉘 메타 문자(*) - 모든 문자와 일치하는 와일드 카드 문자

정규식 메타 문자 (*) - 선행 문자가 0회, 이상 반복

 

grep abc* abc*==grep abc abc1 abc2 abc abc1 abc2

 

패턴에는 쿼터(" ")를 이용하여 묶어 쉘이 확장 해석하지 않도록 해야합니다.

 

 grep 정규표현식 메타문자 

 

[참고]

#egrep

확장된 정규식 ( + ? ! | ( ) { } )을 이용하여 파일 내의 문자열을 검색한다. ( #grep -E)

 

#fgrep

정규식을 사용하지 않고 패턴을 모두 일반 문자열로 처리하여 명령어 실행결과가 빠르다. ( #egrep -F )

 

#watch

주기적으로 지정된 명령을 실행하고 결과를 출력 (업데이트)

#watch [option] "[command]"

→ 옵션 (명령의 세부 기능)

-n [N] N초 주기로 명령 결과 출력

-d 변경된 부분에 음영 처리

*세션을 추가하고 파일을 만들어 업데이트 되는 정보를 실시간으로 확인해줍니다.

 

출처 : https://neul-carpediem.tistory.com/57?category=788657

Comments