2012-09-01 3 views
0

전화 번호 목록을 grep하기 위해 -P 옵션을 사용하고 있습니다. 내 결과는이 옵션으로 훌륭하지만 목록이 없으면 반환되지 않습니다. grep man page은 -P를 사용하면 'PATTERN을 펄 정규 표현식'으로 해석합니다. 이후 나는 펄을 모르고 그냥 grep과 regex를 배우는 것으로 이것은 나에게별로 의미가 없다.목록을 grep 할 때 왜 '-P'를 사용해야합니까?

간단한 설명이 있습니까? -P 옵션 grep없이

+0

의미있는 설명을 작성하려면 샘플 데이터, grep 대상 및 양호한 출력 샘플과 나쁜 출력 샘플이 필요합니다. 이 질문을 포함하도록 질문을 편집하십시오. 행운을 빕니다. – shellter

답변

0

는 기본 정규 표현식으로 패턴을 해석하고, ., ? 또는 | 같은 메타 문자와 예를 들어 그들 사이에 큰 차이가있다. 정규 표현식을 적용해야합니다.

+0

이제 메타 문자에 대해서도 배우고 있습니다. 도와 줘서 고마워. – user1640934

1

grep가 사용할 수있는 정규 표현식의 3 개 세트 있습니다

  • BRE - 기본 정규 표현식
  • ERE - 확장 된 정규 표현식
  • PCRE - Perl 호환 정규 표현식

일부 개념은 모두 동일합니다. 이것들. 예를 들어 [a-z] 또는 [^0-9]과 같은 문자 클래스는 모두 동일합니다. 반면에 (\(의 의미 또는 | 또는 + 또는 |의 의미가 정규 표현식의 클래스에 따라 다릅니다.

이것은 매우 중요한 주제입니다. 그래서 대답을 쉽게 커버 큰. 더 많은 정보를 얻으려면 Jeff Freidl의 Mastering Regular Expressions 책과 다름의 정규 표현식에 대한 설명서를보십시오.

+0

사려 깊은 후원에 감사드립니다. 좋은 지적. – user1640934

관련 문제