본문 바로가기
os/Solaris

5. 검색 (find, grep, egrep)

by #moonyz 2014. 8. 28.

1. find [검색시작경로] [검색옵션] [검색어] [동작]

- 디렉토리 트리에서 파일을 검색
- 여러가지 조건으로 검색가능 : 파일이름, 크기, 타입, 수정시간, 권한 등
- but 내용으로는 검색 X 
- 검색 결과는 표준출력(스크린)에 표시

[검색옵션]

-name [파일명]

파일 이름으로 검색 

find / -name filename

-size [+|-]n

파일의 크기로 검색

find / -size +3244

-atime [+|-]n
-mtime [+|-]n
-ctime [+|-]n   

파일의 접근시간으로 검색
파일의 수정시간으로 검색
파일의 생성시간으로 검색

find /usr -atime +4
find /usr -mtime -5
find /usr -ctime 7

-newer [파일명]      

지정한 파일보다 나중에 생성된 파일 검색

find / -newer filename          

-user [loginID]

로그인 ID로 검색(특정사용자가 만든파일)

find / user oracle

-type [파일타입]

파일 타입으로 검색 f(file), d(directory), b(block)

find /etc -type f  

-perm [접근권한]     

사용권한으로 검색

find / -perm 755


[동작]

-exec [명령] {}\; 

검색된 파일에 명령을 실행find / -name ora -exec rm {}\;

-ok [명령] {}\;

사용자의 확인을 받아서 명령실행   find / -user user114 -ok rm {}\;

-print

조건에 맞는 파일의 경로명 출력find / -name test.txt -print

-ls

조건에 맞는 파일을 찾으면 ls -li 리스트처럼 출력   find /usr -name '*tif' -ls


2.
 grep [옵션] [패턴] [파일명]
- Globally Regular Expression Print
- 파일에서 정규표현식을 포함한 모든 행을 출력
- 지정한 패턴이나 정규식/확장정규식을 포함하는 행을 찾아 화면에 표시
- 파일의 내용을 영향을 받지 않는다
- 아스키, 쉘스크립트만 사용가능
- binary, application data는 검색할수 없다.

[옵션]
-i대소문자 구분하지않음
-l패턴이있는 파일이름만출력 (라인은출력X)
-n출력하는 각 라인 앞에 라인 번호를 붙임
-v패턴이 없는라인만 출력 (grep 명령어 반대)
-c패턴이 있는 라인의 개수
-w패턴과 맞는 단어가 독립적인 경우만 출력

EX) grep -n root /etc/group -> /etc/group에서 root가 있는 line표시 + 라인앞에 번호
      grep -v root /etc/group -> /etc/group에서 root가 없는 line표시
      grep -li  the  * -> 모든파일중 the가 들어있는 파일출력 + 대소문자구분X + 파일이름만출력
      grep -l root group passwd hosts ->root, group, passwd, hosts가 있는 파일 이름만출력

** 검색조건을 다양하게 사용하기 위해 정규식, 확장정규식을 사용한다.

[정규식]

^ (caret)   pattern으로 시작하는 라인 출력grep '^pattern' /etc/passwd
$pattern으로 끝나는 라인 출력grep 'pattern$' /etc/passwd
p로 시작하여 n으로 끝나는 라인출력(->1문자)grep 'pn' /etc/passwd
*zero or more timesgrep '[a-z]*' /etc/passwd
[ ]pattern에 해당하는 한문자grep '[pP]attern' /etc/passwd
[^]pattern에 해당하지 않는 한문자grep '[^a-m]attern' /etc/passwd
/<  >/pattern으로 시작 또는 끝나는 라인 출력grep '/<pattern>/' /etc/passwd



3. egrep [옵션] [패턴] [파일명]

[확장 정규식]

+

and, a~z중 한문자로 시작하고 ark로 끝나는 단어있는라인 출력

'[a-z]+ark'                                        

x|yapple이나 orange가 포함된 라인 출력'apple|orange'
( | )searches나 searching이 포함된 라인 출력'search(es|ing)'

EX) egrep 'N(e|o)+' /etc/passwd -> Ne나 No가 포함된 단어 있는라인 모두 출력


'os > Solaris' 카테고리의 다른 글

7. process 관리  (0) 2014.08.28
6. 파일권한관리  (0) 2014.08.28
4. vi Editor  (0) 2014.08.28
3. 디렉토리, 파일관련 명령어  (0) 2014.08.28
2. Shell metacharacters  (0) 2014.08.28

댓글