답변:
귀하의 예에는 두 가지 문제가 있습니다.
기본 표현 은 정규 표현식 이 "모든 문자 시퀀스"를 의미하는 와일드 카드라는 글로 패턴 과 동일하게 작동 한다고 가정한다는 것 *
입니다. 정규 표현식에서 *
대신 "이전 원자의 수"를 fil*
의미 하므로 뒤에 0 개 이상의 문자 f
가 i
옵니다 l
. grep fil.*
의도 된 의미를 얻으려면 다음과 같이 말해야 합니다. .
"단일 문자이므로 .*
"모든 문자 시퀀스 " 를 의미합니다.
덜 문제는 따옴표 붙은 특수 문자를 사용하여 glob 규칙에 따라 의미가 있다는 것입니다. 즉, 쉘이 해석 할 수 있습니다. 당신이 글로브 패턴과 일치하는 로컬 디렉토리의 모든 파일이 있다면 fil*
또는 abc*
, 이를 확장 할 쉘은 , 그래서 grep
패턴이 아닌 의도 된 RE으로 확장 된 파일 이름을 얻을 것입니다. 명령 행에서 이러한 문자를 사용할 때마다 다음을 인용해야합니다 echo file | grep 'fil.*'
..
echo file|grep fil*
대답fil
합니다.