나는 출력을 잡는 동안 사용되는 정규 표현식의 종류와 관련된 SuperUser 에 대해이 질문에 대답 했습니다 .
내가 준 대답은 다음과 같습니다.
tail -f log | grep "some_string.*some_string"
그런 다음 @Bob 이 내 대답에 대한 세 가지 의견으로 다음과 같이 썼습니다.
.*
탐욕스럽고 원하는 것보다 더 많이 캡처 할 수 있습니다..*?
일반적으로 더 좋습니다.
그런 다음
은
?
에 대한 수정 자*
이므로 욕심 많은 기본값 대신 게으르게 만듭니다. PCRE를 가정합니다.
나는을 검색 PCRE
했지만 내 대답에서 이것의 중요성을 알 수 없었습니까?
그리고 마지막으로
또한 이것이 쉘 glob이 아닌 정규식 (기본적으로 POSIX 정규식을 수행하는 grep)임을 지적해야합니다.
grep 명령에서 정규식이 무엇인지, 기본 사용법 만 알고 있습니다. 그래서, 나는 그 3 가지 의견을 얻을 수 없었으며 다음과 같은 질문을 염두에 두었습니다.
- 의 사용의 차이 무엇입니까
.*?
대는.*
? - 어느 것이 더 좋고 어떤 상황에서? 예를 제공하십시오.
또한 의견을 이해하는 것이 도움이 될 것입니다.
업데이트 : 질문에 대한 답변으로 Regex는 Shell Glob과 어떻게 다릅니 까? @Kusalananda 는 그의 의견 에이 링크 를 제공 했습니다 .
참고 : 필요한 경우 문맥을 참조하기 위해 대답하기 전에이 질문에 대한 나의 대답을 읽으십시오 .