주로 텍스트를 통한 검색으로 이용된다.
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].*'
아무문자도 존재하지 않거나 문자로 시작하는 파일명 모두 검색