grep을 사용하여 다른 하위 도메인을 무시하고 정확한 하위 도메인을 일치시키는 방법

grep을 사용하여 다른 하위 도메인을 무시하고 정확한 하위 도메인을 일치시키는 방법

audio.itunes.apple.com을 일치시키고 무시하려면 어떻게 해야 합니까?http://streamingaudio.itunes.apple.com로그 파일에서 grep을 사용하시겠습니까?

답변1

대부분의 grep구현은 -w옵션 을 지원합니다.단어성냥:

grep -wF audio.itunes.apple.com

또는 다음과 함께 사용할 grep수 없는 -w구현(예: Solaris) 의 경우 -F:

grep -w 'audio\.itunes\.apple\.com'

audio.itunes.apple.com앞이나 뒤에 있지 않은 경우에만 포함하는 줄을 찾습니다.단어 문자grep(단어 문자는 영숫자 또는 밑줄입니다(GNU 2.19 이전 버전의 경우 단일 바이트 문자로 제한됨)). Solaris의 일부 구현에서는 grep단어가 아닌 문자가 줄의 시작 부분에 있지 않는 한(이 경우 문자열의 첫 번째 문자임에도 불구하고) 일치하는 문자열을 단어 문자로 시작하도록 제한합니다(반드시 단어 문자로 끝날 필요는 없음). 문자는 별 차이가 없습니다.) 일치하는 부분은 항상 a단어 문자입니다.

따라서 여기서는 단어가 아닌 문자이기 http://audio.itunes.apple.com때문에 일치 하지만 앞의 문자가 단어 문자이기 때문에 일치하지 않습니다./http://streamingaudio.itunes.apple.comgaudio

POSIX에 해당하는 내용은 다음과 같습니다.

grep -E '(^[^[:alnum:]_])audio\.itunes\.apple\.com([^[:alnum:]_]|$)'

또는 BRE를 사용하세요.

grep -x '\(.*[^[:alnum:]_]\)\{0,1\}audio\.itunes\.apple\.com\([^[:alnum:]_].*\)\{0,1\}'

grepGNU를 포함한 일부 구현에서는 단어가 아닌 단어와 단어 사이의 전환 시 일치하는 정규식 연산자를 grep지원합니다 (Solaris에는 위와 동일한 홀수 추가 제한 사항이 있습니다 ). 따라서 다음을 사용할 수 있습니다.\<grep\<-w

grep '\<audio\.itunes\.apple\.com'

이러한 grep구현으로.

답변2

-v, --invert-match를 사용하세요.

일치하지 않는 행을 선택하려면 일치의 의미를 반대로 합니다. (-v는 POSIX에 의해 지정됩니다.)

grep -vhttp://streamingaudio.itunes.apple.com

관련 정보