zsh - 복잡한 파일 이름 일치 [닫기]

zsh - 복잡한 파일 이름 일치 [닫기]

와일드카드 연산자를 사용할 때 파일 이름 목록을 프로그램에 전달할 수 없습니다.

본질적으로 문제는 여러 수준의 접미사를 가진 파일이 있고 기본 파일을 더 짧은 접미사와 일치시키고 싶다는 것입니다.

예를 들어 filename.suffix_somedata일치해야 하지만 filename.suffix_somedata_extrainfo일치해서는 안 됩니다.

시도해 보았지만 ls filename.suffix_[a-zA-Z0-9]*예상 ls filename.suffix_[:alnum:]*대로 작동하지 않습니다.

답변1

*의 정규식 연산자에 해당하는 것은 ( for ) zsh -o extendedglob입니다 . 이 옵션과 함께 ksh 스타일 와일드카드를 사용할 수도 있습니다 . 따라서 다음 중 하나를 수행하십시오.###+kshglob

setopt extendedglob # best in ~/.zshrc
ls -d filename.mainsuff_[[:alnum:]]#

또는:

setopt kshglob
ls -d filename.mainsuff_*([[:alnum:]])(-)

(이것은 (-)부분적으로 ([[:alnum:]])전역 한정자로 처리되는 것을 방지하기 위한 것입니다(또는 그렇게 할 수 있습니다 setopt nobareglobqual)).

답변2

이것은:

ls | cut -d '_' -f1,2

관련 정보