-e와 함께 qgrep을 사용하면 원하는 결과가 나오지 않습니다.

-e와 함께 qgrep을 사용하면 원하는 결과가 나오지 않습니다.

Windows 버전의 grep( qgrep)를 사용하고 있으며 해당 매개변수를 사용하고 있지만 -e원하는 결과를 얻지 못합니다.

처리하려는 라우터 로그 파일이 있는데, 구체적으로 다음과 같습니다.

SRC=18.x.x.x

또는

SRC=18y.x.x.x

로그 파일에는 다양한 콘텐츠가 있지만 SRC=a.b.c.d소스 IP가 로 시작하는 위치에만 초점을 맞췄습니다 18.

내가 원하는 출력은 18.x.x.x(즉, 18.IP만)입니다.

qgrep명령은 다음과 같습니다

qgrep -e "SRC=18." source.file destination.file

나는 그 줄과 똑같은 따옴표를 사용하고 있습니다.

하지만 qgrep무시하고 출력에 .나와 있습니다 .1818x

grep아니면 qgrepwith 옵션이 내 주장의 을 -e무시 해야 합니까?.

편집: 죄송합니다. 내 qgrep명령이 포함되었지만 SRC=원래 질문에는 없었습니다.

답변1

좋습니다. Unix grep과 마찬가지로 Windows용 grep 및 qgrep은 검색 문자열에 마침표(.)를 간단한 방식으로 허용하지 않습니다.

따라서 이것은 작동합니다: grep -e SRC=18[.] *.log > out.txt

따옴표는 필요하지 않습니다. 마침표 주위에 대괄호를 사용하면 됩니다.

관련 정보