하이픈을 두 개만 잡는 방법은 무엇입니까?

하이픈을 두 개만 잡는 방법은 무엇입니까?

grep -r "\-\-"온라인으로 해결책을 검색한 후 or 문제 없이 하이픈 두 개를 찾을 수 있습니다 grep -r \\ --. 그러나 grep 검색 파일에는 주석과 같이 하이픈으로 가득 찬 줄이 포함되는 경우가 있습니다 /*--------- comment ----- */. 예를 들어 grep이 두 개의 하이픈이 인접한 경우만 반환하기를 원합니다. 예를 들어 --대신 ---. 이상적으로는 이것을 사용할 수 있지만 -w운이 없습니다.

퍼즐의 두 번째 부분은 두 개의 연속된 하이픈만 찾을 수 있다면 --그 패턴이 완벽하게 일치하는 것처럼 찾고 싶다는 것입니다 -w. 따라서 비슷한 i--;결과가 발생하지 않습니다. 하지만 i --그럴 것입니다. 어쩌면 간단한 해결책이 있을 수도 있지만, 알아낼 수 없는 것 같습니다.

답변1

최소한 GNU grep이 있으면 PCRE를 사용할 수 있습니다주위를 둘러보세요하이픈 앞이나 뒤에도 없는 하이픈 쌍과 일치합니다.

grep -P '(?<!-)--(?!-)' file

또는

grep -Pw '(?<!-)--(?!-)' file

관련 정보