728x90

주어진 a,b 파일을 활용하여 유틸리티 명령어 각 옵션별로 실습하여 캡처하기 

grep v,w 옵션 검색 후 문서화하기.

 

 

1. 유틸리티 명령어

 

1-1) grep 명령어

 

grep은 Global Regular Expression Print의 약자로 텍스트 파일에서 원하는 문자열이 들어간 행을 찾아 출력하는 명령어이다.

 

(+ Regular Expression, 또 다른 말로는 정규 표현식으로 특정 규칙을 가진 문자열 집합을 표현하기 위한 형식 언어로써, 주로 문자열 패턴 매칭을 검사하거나 문자열을 치환하기 위해 사용된다.

 

하나 이상의 파일로부터 프로그램 수정 등을 위해 변수, 또는 함수명을 찾는데 유용하게 사용되며,

log 파일에서 특정 날짜, 문자로 기록된 error 메세지를 찾는데 유용하게 사용된다.

 

grep 문법은 

grep 옵션 [문자열] [파일명] 이다.

 

여기서 [문자열]은 사용자가 찾으려는 단어 또는 구를 나타내고, [파일명]은 검색 대상 파일이다.

 

먼저 옵션을 포함하지 않은 grep 명령어를 실행해보자.

 

 

 

위에 실행화면을 해석하자면, grep 2020 a / grep 2020 b 는 a, b 파일에 '2020' 을 검색하는 것이다.

 

위 그림 처럼 a,b 파일을 따로따로 grep 명령어를 통해 검색할 수 있고,

grep 2020 a b 라 하게 되면 한번에 두 파일에서 검색한 결과값을 얻을 수 있다.

 

 

 

 

1-2) grep 옵션

 

grep 명령어에 옵션이 있다.

 

(1) -i : 비교시 대소문자를 구별하지 않고 출력한다.

 

 

 

위에 그림을 보게 되면, 옵션 -i를 작성하지 않은 것과 한 것을 비교하자면, 

작성하지 않은 것에는 a,b 파일에 'yellow' 문자열을 검색하였을 때, 완전히 동일한 문자열을 가진 행을 출력하게 된다.

하지만 -i를 작성하게 된다면, 'yellow' 문자열에서 대소문자 구별 없이 'yellow'와 'Yellow'를 모두 출력하게 된다.

 

(2) -l : 문자(패턴)가 들어간 파일 이름을 출력한다.

 

옵션이 없는 grep 명령어는 문자열(패턴)과 일치하는 내용을 출력하게 되는데, 

 

옵션 -l 추가한 grep 명령어는 아래 그림과 같이 '2020' 이라는 문자열이 들어간 파일 이름을 출력하게 된다.

 

(3) -c : 문자와 일치하는 줄의 수 출력한다.

 

옵션 -c는 패턴을 포함하는 파일의 이름 : 패턴 일치 개수 형식으로 출력이 된다.

 

 

 

(4) -n : 줄의 번호와 내용을 같이 출력한다.

 

아래 그림을 보면 옵션 -n이 없을 때는 줄 번호 없이 'purple' 문자 검색한 내용만 출력이 되는 반면,

-n 옵션이 붙게 되면, 내용과 함께 각 a,b 파일에 'purple'이라는 문자가 몇 번째 줄에 있는지 줄 번호까지 출력하게 된다.

 

 

 

 

1-3) 정규표현식

 

(1) ^ : ^[문자열]으로 쓰며, 문자열로 행이 시작되는 경우를 출력한다.

 

(2) r.. : r로 시작해서 뒤에 2개의 문자열이 있는 모든 행을 출력한다.

여기서 r이 아니라 e..으로 변경한다면, e로 시작해서 뒤에 2개의 문자열이 있는 모든 행을 출력하게된다.

 

 

 

 

(3) j*y : j를 0번 이상 반복하고, y로 끝나는 문자열을 출력한다.

* : 바로 앞의 것을 0번이상 반복한다.

 

[]*[] 형식에서 앞에 []가 0번이상 반복된다는 것은 문자열에 앞의 [] 문자는 없어야 한다는 뜻이고, 뒤 []로 끝나는 문자열이어야 한다.

 

 

 

 

(4) [a-z] : 파일에서 a부터 z로 시작하는 단어를 모두 찾아 출력한다.

 

아래 그림을 보게 되면 [a-z]뒤에 k가 붙게 되는데

의미는 a부터 z까지의 문자 중 하나 뒤에 k가 붙은 문자열이 있는 모든 행을 출력하라는 뜻이다.

 

여기서 [a-d]가 된다면 파일에서 a,b,c,d로 시작하는 단어를 모두 찾으라는 뜻이 된다.

 

 

 

 

(5) [^'문자'] : 앞에 '문자'가 붙지않는 문자열이 있는 모든 행을 출력한다.

[^ ]는 [^ ] 내의 문자를 제외한 나머지 문자를 의미한다

 

그래서 아래 그림을 보게 되면,

[^rmut]e 은 r,m,u,t 를 제외한 문자들 뒤에 e가 붙어 있는 문자열이 있는 모든 행을 출력하게 된다.

 

 

 

1-4) 추가 옵션

 

(1) grep -v [문자열] : 지정된 문자열과 일치하지 않는 행만 출력한다.

 

아래 그림을 본다면 a, b 파일에서 "b"라는 문자열이 들어가지 않은 행을 출력한 화면이다. 

 

 

 

(2) grep -w [문자열] : 문자열이 전체 단어와 일치하는 행만 출력한다. 

 

아래 그림을 보면 a,b 파일에 "green"라는 문자열과 완전히 동일한 문자열을 가진 행들만 출력을 하게 되는데,

이때 대소문자를 구분해서 출력하게 된다.

 

 

 

'자기개발 > Linux' 카테고리의 다른 글

[ Linux week5 ] 과제 1,2,3  (0) 2021.05.18
[ Linux week4 ] 과제1,2  (0) 2021.05.16
[ Linux week3 ] 과제2, 과제3  (0) 2021.05.04
[ Linux 2주차 ] 과제 재제출  (0) 2021.05.03
[ Linux 2주차 ] 과제4  (0) 2021.04.27

+ Recent posts