문제
이름이 'somelongstring'으로 시작하는 모든 파일을 나열해야합니다. 그러나 'Somelongstring'의 경우는 다를 수 있습니다. 어떻게?
ZSH를 사용하고 있지만 Bash 솔루션도 환영합니다.
해결책
ZSH :
$ unsetopt CASE_GLOB
또는 일반적으로 사례에 민감한 글로브를 활성화하지 않으려면 다양한 부분 만 활성화 할 수 있습니다.
$ print -l (#i)(somelongstring)*
이것은 "SomelongString"으로 시작하는 모든 파일 (하위/대문자의 조합)과 일치합니다. 사례에 민감한 플래그는 괄호 사이의 모든 것에 적용되며 여러 번 사용할 수 있습니다. 매뉴얼을 읽으십시오 zshexpn(1)
자세한 내용은.
업데이트거의 잊어 버렸습니다.이 작업이 작동하도록 확장 글로브를 활성화해야합니다.
setopt extendedglob
다른 팁
세게 때리다:
shopt -s nocaseglob
이 목록을 얼마나 깊게하고 싶은지에 따라 find
이와 관련하여 많은 것을 제공합니다.
find . -iname 'SomeLongString*' -maxdepth 1
이것은 현재 디렉토리의 파일 만 제공합니다. 중요합니다 -iname
대신 매개 변수 -name
.
$ function i () {
> shopt -s nocaseglob; $*; shopt -u nocaseglob
> }
$ ls *jtweet*
ls: cannot access *jtweet*: No such file or directory
$ i ls *jtweet*
JTweet.pm JTweet.pm~ JTweet2.pm JTweet2.pm~
제휴하지 않습니다 StackOverflow