grep은 다음의 특정 수의 단어와 일치합니다.

grep은 다음의 특정 수의 단어와 일치합니다.

키워드와 다음 네 단어를 어떻게 검색합니까? 예를 들어 다음과 같은 단락이 있다고 가정해 보겠습니다.

Meta Stack Exchange is where users like you discuss bugs, features, and 
support issues that affect the software powering all 167 Stack Exchange 
communities.

"Exchange"라는 키워드와 다음 4개 단어를 검색하려고 하므로 "Exchange는 사용자가 좋아하는 곳입니다."라는 결과가 출력됩니다.

나는 다음을 사용했다:

grep -Eo "Exchange" 

키워드(단어, 숫자, 차트...) 뒤의 grep 수를 제어하려면 이 명령에 추가해야 했습니다.

답변1

공백과 공백이 아닌 문자 시퀀스를 사용할 수도 있나요?

$ grep -Eo 'Exchange([[:space:]]+[^[:space:]]+){4}' << EOF
Meta Stack Exchange is where users like you discuss bugs, features, and 
support issues that affect the software powering all 167 Stack Exchange 
communities.
EOF
Exchange is where users like

또는 (perl 스타일, grep이 지원하는 경우)

$ grep -Eo 'Exchange(\s+\S+){4}' << EOF
Meta Stack Exchange is where users like you discuss bugs, features, and 
support issues that affect the software powering all 167 Stack Exchange 
communities.
EOF
Exchange is where users like

알아채다 grep 여러 줄에 걸쳐 일치하지 않음 - 여러 줄 일치의 경우 다음을 사용할 수 있습니다. pcregrep 대신에.

관련 정보