또는 [반복]과 함께 grep을 사용하십시오.

또는 [반복]과 함께 grep을 사용하십시오.

grep을 사용하여 텍스트 파일에서 특정 단어나 다른 단어의 발생을 검색하는 방법은 무엇입니까?

"bot" 또는 "spider"를 포함하여 Apache 로그 파일의 모든 줄을 필터링하고 싶습니다.

cat /var/log/apache2/access.log|grep -i spider

"거미"가 포함된 행만 표시됩니다. 그런데 "봇"을 추가하려면 어떻게 해야 하나요?

답변1

고전적인 정규 표현식을 사용하세요:

grep -i 'spider\|bot'

또는 확장 정규식(또는 perl regex -P):

grep -Ei 'spider|bot'

또는 여러 리터럴 패턴(정규 표현식보다 빠름):

grep -Fi -e 'spider' -e 'bot'

답변2

cat /var/log/apache2/access.log | grep -E 'spider|bot'

|-E 옵션을 사용하면 논리적 OR 에 사용할 수 있는 확장 정규식을 활성화할 수 있습니다 .

또한 다른 프로세스를 호출하는 대신 다음 명령을 사용하여 이를 수행할 수 있습니다.

grep -E 'spider|bot' /var/log/apache2/access.log

답변3

$ cat /var/log/apache2/access.log|grep -i '스파이더\|봇'

위의 작업이 수행됩니다.

egrep을 사용할 수도 있습니다.

$ cat /var/log/apache2/access.log|egrep -i '스파이더|봇'

egrep은 grep(grep -E)의 확장입니다. | 앞에 \를 사용할 필요는 없습니다. egrep을 사용하는 경우.

답변4

대신 egrep을 사용할 수 있습니다.

cat /var/log/apache2/access.log|egrep -i 'spider|bot'

관련 정보