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

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


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

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