![정규식 수량자는 찾기와 잘 작동하지 않습니다.](https://linux55.com/image/74175/%EC%A0%95%EA%B7%9C%EC%8B%9D%20%EC%88%98%EB%9F%89%EC%9E%90%EB%8A%94%20%EC%B0%BE%EA%B8%B0%EC%99%80%20%EC%9E%98%20%EC%9E%91%EB%8F%99%ED%95%98%EC%A7%80%20%EC%95%8A%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
이 출력은 설명이 매우 간단합니다.
XXXXX@debianvirtualbox:~$ locate -r "^/var/lib/tomcat[0-9]/.*" -l 10
/var/lib/tomcat8/conf
/var/lib/tomcat8/lib
/var/lib/tomcat8/logs
/var/lib/tomcat8/webapps
/var/lib/tomcat8/work
/var/lib/tomcat8/webapps/ROOT
/var/lib/tomcat8/webapps/websight
/var/lib/tomcat8/webapps/ROOT/META-INF
/var/lib/tomcat8/webapps/ROOT/index.html
/var/lib/tomcat8/webapps/ROOT/META-INF/context.xml
jakub@maredadebianvirtualbox:~$ locate -r "^/var/lib/tomcat[0-9]{1,2}/.*" -l 10
XXXXX@debianvirtualbox:~$
-l 10
Tomcat 설치 디렉터리와 일치하는 상위 10개 항목을 나열하려고 합니다 . 올바르게 사용 하면 [0-9]
일치하지만 수량자를 추가하면 아무것도 일치하지 않습니다. 수량자 합계에도 동일하게 적용되지만 다음 표현식과 마찬가지로 잘 작동하는 것 같습니다.tomcat8
[0-9]{1,2}
+
?
*
^/var/lib/tomcat[0-9][0-9]*/.*
왜 이런 일이 발생하며 좋은 해결 방법은 무엇입니까?
답변1
(일명 ) --regex
대신 ("p" 없이)를 시도해 보세요 . 이는 기본 정규식 대신 확장 정규식을 사용하라는 의미입니다.-r
--regexp
locate
locate --regex "^/var/lib/tomcat[0-9]{1,2}/" -l 10
또는 이스케이프 {
및 }
with를 사용하여 \
기본 정규식 내에서 특수하게 만듭니다.