--only-matching 플래그와 함께 grep 명령을 사용하려고 하는데 예상대로 작동하지 않습니다.
이 명령은 다음과 같습니다.
echo "1/2/3/4/5" | grep -oE "^([^/]+/){0,2}"
다음과 같은 출력을 제공합니다.
1/2/
3/4/
그냥 기대하고 있었어1/2/
어떻게 되어가나요..? 줄의 시작 부분이 아니기 때문에 3/4/
일치해서는 안됩니다 .."^([^/]+/){0,2}"
(GNU grep 실행2.5.1)
답변1
그건허점GNU Grep
이전 버전에서는이번에 제출하세요GNU
(즉, 버전 이전 2.5.3
).
변경 로그의 관련 부분을 인용하려면:
Previously failing tests relative to left anchors (^ and \<) and -w should now pass.
이것초기 커밋오류를 설명하기 위해 테스트가 추가되었습니다.
# End of a previous match should not match a "start of ..." expression.
grep_test "word_word/" "word_/" "^word_*" -o