
숫자가 포함되지 않은 모든 문자열에 대한 파일을 검색하려고 하는데 다음 정규식을 생각해냈습니다.
\D*/g
이 온라인 도구에서 원하는 대로 작동합니다.https://regex101.com/#pcre, 하지만 다음 명령을 실행하면:
grep -c "\D*/g" nonDistortResults.txt
돌아오고 있습니다 0
.
파일 형식은 다음과 같습니다.
2573
kitchenDoor 2573
2573
2573
2573
2574
2574
2574
2574
kitchenDoor 2574
2574
2574
2575
2575
2575
2575
2575
kitchenDoor 2575
2576
따라서 위의 예에서 나는 그것이 반환될 것으로 기대합니다 3
.
답변1
다음과 같이 패턴을 조정해야 합니다.
grep -c \D nonDistortResults.txt
- grep이 이미 라인과 함께 작동하므로 'greedy' 플래그가 필요하지 않습니다.
- 여기에는 따옴표가 필요하지 않습니다.
- 별표는 0을 포함하여 원하는 수의 결과가 될 수 있습니다(따라서 별표를 사용하면 모든 줄에 대해 true가 반환됩니다).
일부 Pearl 정규식(PCRE)을 다시 사용해야 하는 경우 grep의 -P 옵션을 살펴볼 수 있지만 매뉴얼 페이지에는 다음과 같이 나와 있습니다.
-P, --perl-regexp
PATTERN을 Perl 정규식(PCRE, 아래 참조)으로 해석합니다. 이는 매우 실험적이며 grep -P는 구현되지 않은 기능에 대해 경고할 수 있습니다.