Linux

3. 파일 및 디렉터리 검색

jih0ssang 2023. 9. 18. 16:45

파일 및 디렉토리 검색


1) 파일 내용 검색

(1) grep (Global Regular Expression Print)  패턴검색
  ◆ 파일 안 문자열 검색 /출력. (디렉토리는 검색불가!!)
  ◆ Regular Expression=RE, res(정규화 표현식)
  ◆ 원하는 글자가 있는 라인에 하이라이팅.

grep [option]  <pattern>  <file>
   ◆ [option]
   ◇ -n : 몇번째 글자열인지 출력
   ◇  -i : 대소문자 구별하지 않고 출력
   ◇ -w : 단어들만 출력  (문자열이 내포되어있는 것들은 제외)   -W  : ^word (word포함x)
   ◇ -v : 해당 문자열 제외하고 출력
   ◇ -R : 재귀, 하위 디렉토리
   ◇ -l  : 해당 글자열 패턴이 있는 파일명 출력
   



◆ Meta Character(메타 문자) : 문자의 의미가 있다.

◇  [option]
▶ ^ : 시작     ex) grep user^     user~로 시작하는 문자열 찾기)
▶ $ : 끝    ex) grep sh$            ~sh로 끝나는 문자열 찾기)
▶ .. : 중간   ex) grep r..t           r과 t 사이 문자 2개 있는 문자열 찾기)
▶  * (아스테리스크): 모든 파일을 의미. 
       아스테리스크는 앞글자가 없는 것도 포함이 됨.
ex1) grep  -w   r.*t   passwd
ex2) r*t = t, rt, rXt, rXXt, ... , rXXXXXXXXXt
ex3) r.*t = rt, rXt, rXXt, ... , rXXXXXXXXXt

▶[^]: not   (grep [^a-d]oot passwd   //a~d까지 영단어를 제외하고 Xoot 문자열 검색)
▶ grep  [abc]oot passwd
▶ grep  [a-c]oot passwd (- : 범위)


▶ \s : 모든 공백(공백,탭,줄바꿈) 문자 출력 \S : ^공백
▶ \d  : 숫자 있으면 출력 \D : ^숫자
▶ [ABC] : 문자집합 있으면 출력 [^ABC] : ^ABC       ex) [aeiou]    =>ga fe ci jo fu 
▶ [A-Z] : 지정된 두 문자(포함) 사이 문자코드 출력 ex) [g-s]  => ghijkrs
▶ .  : 줄바꿈을 제외한 모든 문자와 일치
▶ \s\S : 줄바꿈 포함하여 모든 문자를 일치 
▶ \p{L} : 지정된 유니코드 범주의 문자와 일치    ex) \p{안녕}
▶ \p{Han} : 지정된 유니코드 스크립트의 문자와 일치   ex) \p{한국어}
 

메타 문자(정규화 표현식) 사이트 (참고하면 좋아요)
   https://regexr.com/

 


(2) egrep (Extended grep)

◆ ex)  egrep 'bash|zsh' passwd
==>  egrep  '(ba|z)sh'  passwd  로 줄이기 가능!!

     문자  |     설명
  -----------------------
    x|y     |    x 또는 y
    ( )      |     그룹

(3) fgrep (Fixed grep)

◆ 메타 문자 의미를 해석하지 않음. 문자 그대로 해석
ex) fgrep  'etc/profile.d/*'  bash
==> 문자열이 etc/profile.d/*  가 들어가있는 파일을 검색. 


(4) pgrep (Process grep)

◆ 프로세스 찾기
kill 할 때, Process ID를 찾아서 해당 프로세스를 kill 할 수 있음

2) 파일 검색
◆ find <PATH>  <OPTION>  <ARGUMENT>

      옵션        설명
-----------------------------
 ◇ -name     파일이름
 ◇ -type     파일형식
 ◇ -perm     권한
 ◇ -size     용량
 ◇ -atime      접근시간
 ◇ -user     소유자
 ◇ -ls     파일의 상세 정보 확인
    
◇ -type
     □ d: 디렉토리
     □  l : 심볼릭링크
     □ f :  텍스트파일/실행파일
     □ b: 블록장치
     □ s: 소켓파일  (네트워크)
     □ c: 문자장치 (원시(raw)장치)
     □ p: 파이프 (Pipe)

'Linux' 카테고리의 다른 글

6. 사용자 및 그룹 관리  (0) 2023.09.18
5. Permission(권한)  (0) 2023.09.18
4. vi Editor(에디터)  (0) 2023.09.18
2. 디렉터리 및 파일  (0) 2023.09.18
[Linux] 리눅스 기본 환경  (0) 2023.09.18