티스토리 뷰

반응형

파일 내용 검색  : grep / egrep / fgrep

파일 내용 중에서 특정 문자열을 찾고 싶을 때 사용하는 것이다.

 

grep (glbal regular exprssion print)

 

파일에서 지정한 정규 표현식 패턴을 포함한 모든 행을 출력한다.

지정한 파일에 특정 문자열(패턴)이 들어있는지 검색할 파일을 여러 개 지정할 수 있다.

이때 파일 이름을 나열할 수도 있고 셀 특수 문자를 이용해 파일 이름을 지정할 수도 있다.

 

더보기

grep [옵션] 패턴 [파일명]

 

ex) grep root/ etc/ passwd

grep -n unix ~/ *.txt

grep -l hello.*c

grep unix grep. dat

→ grep. dat 파일에서 문자열 unix가 들어있는 행을 찾아 화면에 출력한다.

grep은 대소문자를 구분한다. 첫 번째 인자만 제외하고  나머지를 모두 파일 이름으로 간주한다. 

그러므로 문자열에 공백이 포함되어 있다면 반드시 따옴표로 묶어야한다.

 

정규 표현식 특스 문자

^ 행의 시작
$ 행의 끝
. 한글자
[ ] 괄호 안의 문자 중 하나
[^] 괄호 안에 있는 문자가 아닌 글자
* 없거나 여러 번 반복

 


egrep (extended regular extpression)

 

확장된 정규 표현식을 사용하는 grep 명령이다. 

+ 앞의 글자가 하나 이상 나옴
x|y x나 y중 하나
(|) 그룹 만들기

 

 


fgrep (extended regular extpression)

 

지정한 파일에서 문자열을 찾는 명령으로, 문자열에 포함된 모든 정규식 관련 특수 문자를 일반 문자로 해석해 검색한다.

 

 


파일 검색  : find

조건에 맞는 특징 파일이 디렉트리 트리의 어디에 잇는지 찾아주는 명령이다.

 

더보기

find 경로 검색조건[동작]

 

파일 종류

d 디렉토리 파일
f 일반 파일
l 심볼릭 링크 파일
b 블록 장치 파일
c 문자 장치 파일
s 소켓 파일

 

 

시간 지정

-mtime

-atime

 


 명령어 검색 : which

which 명령은 특정 명령이 어느 위치에 있는지를 찾아서 절대 경로를 출력한다. 명령의 실행 결과가 이상해서 올바를 명령이 실행된 것인지 확인하고 싶을 때 이 명령을 사용한다.

 


다음중 옳은 것을 고르시오

1.  파일 내용 중 특정 문자열을 찾고 싶을 때는 find 명령어를 사용한다.

더보기

파일 내용 중에서 특정 문자열을 찾고 싶을 때 사용하는 것은 grep 명령이다.

grep이 파일의 내용으로 검색하는데 반해 find는 파일 생성 일자, 이름, 파일 소유자 등 다양한 조건에 맞는 파일을 찾는다.

2. 찾고자 하는 문자열은 정규 표현식을 이용하여 표현한다.

더보기

정규 표현식은 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어이다.

유닉스는 기본적으로 텍스트를 기반으로 모든 명령을 처리하기 때문에 원하는 텍스트를 표현하는 기술로써 정규 표현식을 사용한다.

문자 와일드 카드 정규 표현식
* 모든 문자 대체, 모든 파일에 해당 앞에 나온 한 문자의 0번 이상 반복
? 파일 이름 중 한 문자 앞에 나온 한 문자의 0 또는 1번 반복
[] 괄호 안의 문자중 하나 괄호 안의 문자 중 하나

 

3. grep과  egrep은 완전히 동일한 명령이다.

더보기

egrep은 확장된 정규 표현식을 사용하는 grep 명령어이다.

4.  which 명령은 조건에 맞는 파일이 디렉토리에서 어디에 있는지 찾아주는 명령이다.

더보기

which 명령은 특정 명령이 어느 위치에 있는지를 찾아서 절대 경로를 출력한다. 명령의 실행 결과가 이상해서 올바를 명령이 실행된 것인지 확인하고 싶을 때 이 명령을 사용한다.


다음 중 파일의 내용이나 위치를 검색하는 명령이 아닌 것을 고르시오

1. which

2. search

3. grep

4. find

더보기

which 명령은 특정 명령이 어느 위치에 잇는지를 찾아서 절대 경로를 출력한다. 명령의 실행 결과가 이상해서 올바를 명령이 실행된 것인지 확인하고 싶을 때 이 명령을 사용한다.


정규 표현식으로 적당하지 않은 것은?

1. ^root

2. sh$

3. [0-9]*

4. *.c

더보기

유닉스 쉘에서 와일드카드로 *는 "모든 것"을 의미하고, .은 단순히 문자로 인식된다. 

즉, *.c는 "모든 것으로 시작하고, 그 뒤에 .이 오고 그 다음에 c가 오는 파일 이름"을 의미하는데 이것은 유효한 정규 표현식이 아니다.

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함