타겟팅: 정규식 반복 접미사 연산자가 --regextype emacs와 함께 작동하지 않습니다.

타겟팅: 정규식 반복 접미사 연산자가 --regextype emacs와 함께 작동하지 않습니다.

이름이 1~2자리 숫자인 형식 krita-NN.kra의 파일이 있습니다 . 나는 그들이 Emacs 정규식을 사용하기를 NN원합니다 . locate하지만, 그후위 연산자 반복Emacs 정규식( \{n, m\}, \{n\})은 허용되지 않는 것 같습니다 locate. 구체적으로 둘 다

  • locate --regex --regextype emacs 'krita-[0-9]\.kra$'

  • locate --regex --regextype emacs 'krita-[0-9][0-9]\.kra$'

관련 결과를 반환하지만 다음 작업에는 정규 표현식이 없습니다.

  • locate --regex --regextype emacs 'krita-[0-9]\{1,2\}\.kra$;
  • locate --regex --regextype emacs 'krita-[0-9]\{1\}\.kra$.

중괄호가 이스케이프되지 않은 경우에도 마찬가지입니다.

질문: locateEmacs는 매뉴얼 페이지에서 주장하는 대로 정규식을 허용합니까?

노트:

  • 이 질문은 대체 솔루션을 찾고 있는 것이 아닙니다.예를 들어또는 find다른 정규식 유형.
  • locate버전:locate (GNU findutils) 4.7.0

답변1

@Stéphane Chazelas가 제안한 대로 Texinfo 문서( ) 는 정규식에 대한 반복 연산자를 지정 info -n emacs locate하지 않습니다 .emacsEmacs 정규 표현식.반대로, 정규식 유형은 grep내가 기대하는 구문을 사용하여 이를 지원합니다. 지금 바로,

locate --regex --regextype grep 'krita-[0-9]\{1,2\}\.kra$

이 문제를 해결했습니다.

관련 정보