'grep -e'및 고급 정규 표현식 사용


0

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

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

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

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

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


grep을 사용하여 찾고자하는 텍스트 예제와 같은 자세한 정보를 제공하십시오.
— Paweł Nadolski

당신은 모든 철자가 철자에 관계없이 그것을 찾을 수 싶습니까?
— Nifle

@Nifle : 아니요, 경로에 대문자가 하나 이상있는 PNG를 찾고 싶습니다. 우리의 배포 프로세스는 모든 파일을 소문자로 만들므로 이러한 파일에 대한 참조가 모두 소문자인지 확인해야합니다.
— Alan

그럼 너는 모두를 찾아야 해. .pPnNgG 파일의 철자 / 케이스와 관계없이 파일을 $name.png , 이미 명명 된 파일의 이름 바꾸기 $something.png 차이를 만들어 내지 않을 것이다.
— Nifle

@nifle : 실제로 도움이되지 않습니다. 모든 파일의 이름을 바꾸고 싶지 않습니다. (배포 절차에서 항상 소문자 이름을 사용합니다.) 다양한 코드 파일에서 이러한 대소 문자가 혼합 된 대 / 소문자를 찾으려했기 때문에 대소 문자가 혼용되지 않도록 할 수 있습니다. 우리의 코드베이스에.
— Alan

답변:


2

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

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

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-9 과 a-z 문자 (또는 A-Z 때문에 -i 추가됨).

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


감사. 나는 실제로 대소 문자를 구분하는 테스트가 필요하다. 특히 혼합 된 파일을 찾아야한다. 나는 모두 소문자 인 모든 png 파일과 일치하는 것을 찾지 못합니다.
— Alan

확장명이 모두 소문자이거나 모두 대문자 인 파일을 제외시키기위한 Updaded 명령입니다. 대소 문자가 혼합 된 .png 파일을 표시해야합니다. 파일 이름 바로 뒤에 줄도 허용됩니다.
— Paweł Nadolski
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.