‘grep -e’및 고급 정규 표현식 사용 정규식을 사용하려고합니다. grep

다음 정규식을 사용하려고합니다. grep (대소 문자가 혼합 된 경우 검색 PNG 파일).

[A-Z]+[\w.]*\.[pPnNgG]{3}[\\"')]*.*$

명령을 입력하면 쉘에 > 더 많은 입력을 원합니다.

나는 사용할 수있다. grep 몇 가지 기본적인 정규 표현식에 대해서는,하지만 좀 더 진보 된 정규 표현식과 함께 사용하는 방법을 결코 알지 못했습니다.

FWIW, 이것은 Windows 7의 Cygwin에 있습니다.



답변

너 탈출하지 않았다. " 캐릭터. 앞에 두 개의 백 슬래시가 하나의 백 슬래시로 바뀝니다. " 탈출하지 않았습니다. 하나의 백 슬래시를 제거하거나 추가하십시오.

다음 정규 표현식을 사용하십시오.

grep -i '^[0-9a-z _]\+\.png\([^0-9a-z]+\|$\)' file | grep -v '^[0-9A-Za-z _]\+\.\(png\|PNG\)\([^0-9A-Za-z]\|$\)'

그것은 줄의 시작 부분부터 포함하는 모든 줄과 일치합니다 :

  • 적어도 문자의 0-9 (의 범위 0, 1, …, 9 문자), a-z ' ' (공백), ‘_’
  • 점 (백 슬래시로 이스케이프해야합니다. 그렇지 않으면 ‘단일 문자’를 의미합니다)
  • ‘png'(또는 ‘PNG’등. -i 추가됨)
  • 그 다음에 0-9a-z 문자 (또는 A-Z 때문에 -i 추가됨).

-i – 대소 문자 구분을 비활성화합니다.


답변