Skip to content

Instantly share code, notes, and snippets.

@harryhan24
Created March 29, 2017 10:40
Show Gist options
  • Save harryhan24/212c49ffdac3894839c261c35a42c384 to your computer and use it in GitHub Desktop.
Save harryhan24/212c49ffdac3894839c261c35a42c384 to your computer and use it in GitHub Desktop.

grep

주로 텍스트를 통한 검색으로 이용된다.

ls /usr/bin | grep zip

grep [option] regex [file...] 위의 형태로 이용 가능하며

  • i: 대소문자 미구분
  • v: 일치않은 모든 것
  • c: 일치한 행(count)
  • l: 일치행 자체가 아닌 이를 포함한 각각의 파일 이름(match file)
  • L: l과 유사하지만 일치하는 행이 없는 파일이름만
  • n: 일치하는 행 앞에 번호 붙인다.
  • h: 복수의 파일 검색에서 파일명 숨김
grep bzip dirlist*.txt

위와 같이 dirlist*.txt 파일 내의 모든 b,z,i,p가 일치하는 파일 검색

정규표현식

grep -h '.zip' dirlist*.txt

'.' - 어떤문자 '^' - 시작문자 // ^zip$은 zip으로만 시작하는 문자(^~$)

#세번재 글자는 i 마지막글짜는 r인 다섯글짜
grep -i '^..j.r$' /usr/share/dict/words

'[]' - 부정 [^bg] - b와 g로 시작(^)하지 않는 문자 ^[A-Z] - 영문대문자로 시작하는 모든 문자 ^[A-Za-z0-9] - 영어숫자로 시작하는 모든 눈자

문자 클래스

[:alnum:] 와 같은 형식으로 사용한다 alnum - 알파뱃과 숫자 word - alnum과 동일하지만 밑줄 '_' 문자가 추가 됨 alpha - 알파벳으로 [A-Za-z]와 동일 blank - 스페이스와 탭 문자 cntrl - 0부터 31과 127번(ASCII 제어숫자) //ctrl+a 같은 digit - 0부터9 graph - 출력 가능한 그래픽 문자 ASCII 33~126 lower - 소문자 punct - ASCII 구두점(!@#$%^&*같은) print - 출력가능문자 space - 공백문자(스페이스탭, 캐리지리턴, 개행 등) upper - 대문자 xdigit - 16진수로 표현하는 ASCII 문자

echo "AAA" | grep AAA # result AAA
echo "AAA" | grep BBB # result 
echo "AAA" | grep AAA|BBB # AAA

result AAA

가로로 묶어주어 얼테네이션을 사용하자

grep -Eh '^(bz|gz|zip)' dirlist*.txt bz,gz,zip으로 시작하는 파일

grep -Eh '^bz|gz|zip' dirlist*.txt bz로 시작하거나 gz,zip을 포함하는 문자열

-E -> 확장정규식 -h 파일이름 출력하지말기

한정수량자

,* - 없거나 여러번

[[:upper:]][[:upper:][:lower:]]*\.

첫글자가 대문자 혹은 대문자+소문자 그리고 점으로 끝남

,+ - 한번 이상

{} - 지정된 횟수 만큼 {n} - 정확히 n번 {n,m} - n~m번 {n,} - n번이상 {,m} - m번 이하

echo (${RANDOM:0:3}) 0~3사이 랜덤

활용

find . -regex '.*[^-_./0-9a-zA-Z].*'

아무문자도 존재하지 않거나 문자로 시작하는 파일명 모두 검색

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment