는 emacs
스타일의 정규식인가요 OSX에있어?
그렇지 않은 경우 -regextype
을 사용해보세요. (구식) 리눅스에 find
사람이 페이지에서 :
-regextype type
명령 행에 이상이 발생 -regex
및 -iregex
시험에 의해 이해되는 정규 표현식 구문을 변경합니다. 현재 구현되는 유형은 emacs
(기본값), posix-awk
, posix-basic
, posix-egrep
및 posix-extended
입니다. find
에 대한
맥 OS X에
, 매뉴얼 페이지는 말한다 :
-regex
처럼
-iregex pattern
하지만 경기는 대소 문자를 구분하지 않습니다. 파일의 전체 경로가 정규 표현식을 사용하여 패턴과 일치하는 경우
-regex pattern
사실. './foo/xyzzy
'파일과 일치 시키려면 정규 표현식 '.*/[xyz]*
'또는 '.*/foo/.*
'을 사용할 수 있지만 'xyzzy
'또는 '/foo/
'은 사용할 수 없습니다.
find pdf -iregex ".*/.*.pdf"
그들 전체 내 폴더에 PDF 파일의 전체 많이 발견하지만, 이러한 변종의 아무도 아무것도 찾을 수 없습니다 :
일부 실험은 보여줍니다
find pdf -iregex ".*/.*\.(pdf|doc|docx)"
find pdf -iregex ".*/.*\.\(pdf|doc|docx\)"
find pdf -iregex ".*/.*.(pdf|doc|docx)"
find pdf -iregex ".*/.*.\(pdf|doc|docx\)"
따라서, 하나 MacOS X (BSD) find
에서 지원하는 정규식이 인식 된 문자 사이에 괄호와 파이프를 포함하지 않는다고 가정해야합니다. '안타깝게도 : man 7 re_format
은 그럴 수도 있음을 암시하지만 그렇지 않습니다. -regextype
옵션은 MacOS X (BSD)에서 지원되지 않습니다.
그래서, 그것은. GNU find
설치 또는 N 다른 파일 확장자에 대한 N 별도의 검색을 수행하거나, 일반적으로 파일에 대한 하나 개의 검색을하고 관심있는 파일을 잡으려고 egrep '\.(aff|wave?|aiff)$'
를 사용하여 간단한 것이 있습니다 오히려 파일 이름에 개행 문자를 사용하지 않는다고 가정합니다 (공백 문자는 괜찮지 만 개행 문자는 없습니다). 당신이 찾고있는
. 내 질문을 수정했습니다. – jml
regex가 아닌'find' 명령으로 출력물을 콘솔에 출력합니까? regex'ing 책임을 다른 유틸리티에 전달하기 위해 다음과 같이 시도 할 수 있습니다 : 'find. | grep -e ". * \. \ (wav \ | aif \)"' – ajshower
그게 완벽합니다. 덕분에 ... 어떻게 유틸리티를 삭제할 수 있습니까? – jml