grep에 대한 tip문의입니다.
글쓴이: rootuser7 / 작성시간: 수, 2007/03/28 - 9:01오전
안녕하세요 ?
인터넷으로 찾다가 도저히 못 찾아서 질문드립니다.
현재 directory와 그 하위 directory에서 특정 keyword가 포함되어 있는 파일과 그 파일내에서의 line을 찾고 싶습니다.
구체적으로 예를 들어서 설명드리겠습니다.
<예>
1) KEYWORD
2) xxx_KEYWORD
3) KEYWORD_xxx
4) xxx KEYWORD
5) KEYWORD xxx
6) xxxKEYWORD
7) KEYWORDxxx
위의 KEYWOR의 예 중에서 오로지 KEYWORD가 들어간 line만을 찾고 싶습니다.
이 때, 일반적으로 다음과 같은 명령어를 사용합니다.
grep –rn KEYWORD *
이럴 경우에는 상기의 예에서 1)~7)번까지 유형을 모두 찾아서 결과로 나타납니다.
제가 원하는 방법은 이런 방법이 아니라,
상기 예에서 1),4) 5)의 경우만 찾고, 나머지의 경우는 찾지 않고자 합니다.
그리고, 부가하여 한가지 더 문의드리자면,
KEYWORD뒤에 *를 붙이지 않고, “grep –rn KEYWORD”와 같이 명령어를 내리면,
shell이 결과를 나타내지 않고, 멈춰 버립니다.
이유가 무엇인지요 ? grep는 이런 “*”를 붙이지 않는 형식은 지원하지 않는지요 ?
Forums:
grep
cat doc.txt | grep -i "\bKEYWORD\b"
이렇게 하면 될 듯합니다.
by P.C.Harley
grep -rnw "KEYWORD"
grep -rnw "KEYWORD" *
또는
grep -rn "\bKEYWORD\b" *
*는 현재 디렉토리의 모든 하위 디렉토리 및 파일들을 지칭하는 와일드카드입니다.
그 자리에 디렉토리명을 지정해 주시면 해당 디렉토리에서 재귀적으로 검사하겠죠.
grep 뒤에 "*" 즉
grep 뒤에
"*" 즉 파일리스트를 넣지 않으면 스탠다드 인풋을 받겠지요.
그러니까 키보드 입력을 받기위해 멈춰서있는 겁니다.
KEYWORD라고 입력하고 Ctrl+D를 눌러보세요.
댓글 달기