메타문자 |
기
능 |
사용
예 |
사용
예 설명 |
^ |
행의
시작 지시자 |
'^love' |
love로
시작하는 모든 행과 대응 |
$ |
행의
끝 지시자 |
'love$' |
love로
끝나는 모든 행과 대응 |
. |
하나의
문자와 대응 |
'l..e' |
l
다음에 두 글자가 나오고 e로 끝나는 문자열을 포함하는 행과 대응 |
* |
선행문자와
같은 문자의 0개 혹은 임의개수와 대응 |
'
*love' |
0개
혹은 임의 개수의 공백 문자 후에 love로 끝나는 문자열을 포함한 행과 대응 |
[] |
[]
사이의 문자 집합중 하나와 대응 |
'[Ll]ove' |
love나
Love를 포함하는 행과 대응 |
[^
] |
문자집합에
속하지 않는 한 문자와 대응 |
'[^A-K]love' |
A와
K 사이의 범위에 포함되지 않는 한 문자와 ove가 붙어있는 문자열과 대응 |
\< |
단어의
시작 지시자 |
'\<love' |
love로
시작하는 단어를 포함하는 행과 대응(vi,grep에서 지원) |
\> |
단어의
끝 지시자 |
'love\>' |
love로
끝나는 단어를 포함하는 행과 대응
(vi,grep에서
지원) |
\(..\) |
다음
사용을 위해 태그를 붙인다. |
'\(lov\)ing' |
지정된
부분을 태크1에 저장한다. 나중에 태그값을 참고하려면 \1을 쓴다. 맨 왼쪽부터 시작해 태그를 9개가지 쓸 수 있다. 왼쪽 예에서는 lov가
레지스터1에 저장되고 나중에 \1로 참고할 수 있다. |
x\{m\} |
문자
x를 m번 반복한다. |
'o\{5\}' |
문자
o가 5회 연속적으로 나오는 모든 행과 대응 |
x\{m,\} |
적어도
m번 반복한다. |
'o\{5,\}' |
문자
o가 최소한 5회 반복되는 모든 행과 대응 |
x\{m,n\} |
m회
이상 n회 이하 반복한다. |
o\{5,10\}' |
문자
o가 5회에서 10회 사이의 횟수로 연속적으로 나타나는 문자열과
대응 |
옵션 |
동작
설명 |
-b |
검색
결과의 각 행 앞에 검색된 위치의 블록 번호를 표시한다. 검색 내용이 디스크의 어디쯤 있는지 위치를 알아내는데
유용하다. |
-c |
검색
결과를 출력하는 대신, 찾아낸 행의 총수를 출력한다. |
-h |
파일
이름을 출력하지 않는다. |
-i |
대소문자를
구분 하지 않는다.(대문자와 소문자를 동일하게 취급). |
-l |
패턴이
존재하는 파일의 이름만 출력한다.(개행문자로 구분) |
-n |
파일
내에서 행 번호를 함께 출력한다. |
-s |
에러
메시지 외에는 출력하지 않는다. 종료상태를 검사할 때 유용하게 쓸 수 있다. |
-v |
패턴이
존재하지 않는 행만 출력한다. |
-w |
패턴
표현식을 하나의 단어로 취급하여 검색한다.
|
메타문자 |
기능 |
사용
예 |
사용
예 설명 |
+ |
선행문자와
같은 문자의 1개 혹은 임의 개수와 대응 |
'[a-z]+ove' |
1개
이상의 소문자 뒤에 ove가 붙어있는 문자열과 대응. move,approve,love,behoove 등이
해당된다. |
? |
선행문자와
같은 문자의0개 혹은 1개와 대응 |
'lo?ve' |
l
다음에 0개의 문자 혹은 하나의 문자가 o가 나오는 문자열과 대응. love,lve 등이 해당된다. |
a|b |
a
혹은 b와 대응 |
'love|hate' |
love
혹은 hate와 대응. |
() |
정규표현식을
묶어준다 |
'love(able|ly)' |
lovable
혹은 lovely와 대응. |
'(ov)+' |
ov가
한 번 이상 등장하는 문자열과 일치. |
| (파이프, pipe, 수직바) 의 뜻은
"왼쪽 프로그램의 실행 결과를 오른쪽 프로그램의 입력으로 공급하라" 입니다.
파이프 왼쪽 오른쪽 프로그램이 동시에 실행된다는 것은 엄밀히 말하면 틀린얘기입니다.
왼쪽 프로그램이 실행되고 그 결과가 output 되면 오른쪽 프로그램의 input으로 공급되는 것입니다. 동시가 아닌 순차적인 개념입니다.
예를 들면,
"검색 프로그램의 출력을 정렬 프로그램으로 파이프시킬 수 있고 다시 그 결과를 프린팅 프로그램으로 파이프시키거나 파일로 리다이렉트해서 저장할 수도 있다."
grep 은 가장 유용한 툴 중의 하나입니다.
grep 의 주된 기능은 정규표현식에 매칭되는 문자열을 찾아서 해당 라인만을 출력하는 것입니다.
쉽게 말해, 출력결과(or 입력)에서 찾는 문자열이 있는 라인만 보여주는 기능을 합니다.
grep 은 여러 버전이 있습니다.
가장 오래된 grep
확장 grep(또는 egrep) : 확장 정규표현식을 지원하고 grep중 가장 빠름.
소위 "fast grep" 또는 fgrep : 실제로 가장 느림.
사용방법에 대한 적절한 답변은 이미 있네요.
#netstat -ap | grep tcp 라고 하면
netstat -ap 의 결과 중에서 tcp 라는 단어가 있는 줄만 보여줍니다.
#last | grep root 하면 root 사용자 로그인 기록만 보여줍니다.
출처 : http://kin.naver.com/db/detail.php?d1id=1&dir_id=10202&eid=Z3K+A2bc3MXwqJYz91ulMLoSJc51le9D
■ grep 사용법
grep [옵션] [찾을문자] [대상파일]
[옵션]
-c : 문자를 포함한 행의 갯수
-v : 문자가 존재 하지 않는 행 출력
-i : 대소문자 구분없이 검색
-cv : 문자가 존재하지 않는 행의 갯수 출력
해당 문자열이 포함된 파일명 찾기
find ./ -name " 파일명의 제약조건 " -print -exec "문자열" {}
\;
=> "문자열"이 들어가 있는 파일 중에 "파일명의 제약 조건"에 맞는 것 찾기
파일명의 제약 조건 :
- * (제약 조건이 없다.)
- *.[c] 파일명이 .c로 끝나는 파일
- *.[ch] 파일명이 .c나 .h로 끝나는 파일
예)
find ./ -name "*" -print -exec grep cur_table_offset1 {} \;
find ./ -name
"*.[ch]" -print -exec grep mmdb_default_sld {} \;
find ./ -name "*.[ch]"
-print -exec grep jobsentry {} \;
Designed by sketchbooks.co.kr / sketchbook5 board skin
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5