2014-06-23 2 views
1

grep에서이 패턴을 어떻게 찾을 수 있습니까? 나는 거짓 "의 형태로 GREP의 결과를 얻을 수있는 방법, 그리고쉘 스크립트에서 grep을 사용하여이 패턴을 찾는 방법은 무엇입니까?

1.1.1.1 test1 testString test2 
1.1.1.1 test1 test2 testString 
1.1.1.1 testString test1 test2 

:

1.1.1.1 (everything) testString (everything) 

난 내가 TestString에이 사건의 각이 있는지 찾을 수 검색을 필요 의미 쉘 sh 스크립트 안의 if 절에 결과를 전달하기 위해 "(발견되지 않음)"또는 "true"(찾았습니다)?

+0

후 예를. –

+3

'grep -q '^ 1 \ .1 \ .1 \ .1. * testString'file' 그런 다음'$? '를 읽으십시오. '1 '이면 발견되지 않습니다. '0', 찾았습니다. – Kent

+0

3 가지 경우 모두와 일치합니까? ". *"가 모든 것을 의미한다면, grep '^ 1 \ .1 \ .1 \ .1. *. testString'. * 파일과 같은 더 완벽한 것은 아닐 것입니다. –

답변

0

귀하의 질문은 명확하지 않습니다. testString 또는 1.1.1.1을 찾고 testString을 찾으십니까?

두 번째 경우를 가정하면, 당신은 파일에서 읽는 가정 :

while read line; do 
    echo $line | grep -q '1\.1\.1\.1.*testString' && echo found || echo not found 
done < filename.txt 
+0

파일에 n 줄이 있으면 n이 파일을 찾지 못했습니다. – Kent

+0

패턴을 따옴표로 묶으십시오. 그렇지 않으면 경로명 확장 ('*') 가능성이 있습니다. 이 경우에는 아마 무해한 것이지만,'$ line'을 위해서조차도 모든 곳에서 따옴표를 선호합니다. –

+0

@Kent - 이해가 안되네 ... 네 질문에 대한 대답이 네라고 생각한다. – arco444

관련 문제