İsimleri 'SomeLongString' ile başlayan tüm dosyaları listelemem gerekiyor. Ancak 'SomeLongString' durumu değişebilir. Nasıl?Zsh/bash üzerindeki büyük harf duyarlı olmayan Glob
Zsh kullanıyorum, ancak bir bash çözümü de bekliyoruz.
İsimleri 'SomeLongString' ile başlayan tüm dosyaları listelemem gerekiyor. Ancak 'SomeLongString' durumu değişebilir. Nasıl?Zsh/bash üzerindeki büyük harf duyarlı olmayan Glob
Zsh kullanıyorum, ancak bir bash çözümü de bekliyoruz.
ZSH: Genel olarak küçük harf duyarsız globbing etkinleştirmek istemiyorsanız
$ unsetopt CASE_GLOB
Ya da, sadece değişen parça için etkinleştirebilirsiniz:
$ print -l (#i)(somelongstring)*
Bu, "somelongstring" ile başlayan herhangi bir dosyayla eşleşecektir (herhangi bir alt/büyük harf kombinasyonunda). Büyük/küçük harf duyarlı bayrağı, parantezler arasındaki her şey için geçerlidir ve birden çok kez kullanılabilir. Daha fazla bilgi için kılavuzu zshexpn(1)
okuyun.
setopt extendedglob
bu girişi olmasını istediğiniz ne kadar derin bağlı olarak, find
bu konuda oldukça fazla sunmaktadır:
find . -iname 'SomeLongString*' -maxdepth 1
Bu yalnızca geçerli dizinde Size dosyaları verecektir. Burada önemli olan, -name
yerine -iname
parametresidir.
bash:
shopt -s nocaseglob
Teşekkür:
GÜNCELLEME Neredeyse işe bunun için globbing extendend hale getirmek zorundadır unuttum. Onu, dünyanın kendisinin bir parçası olarak belirtmenin bir yolu olduğunu umuyordum. Zsh kılavuzu böyle bir şeyden bahseder ama ben bunu anlayamadım. –
$ 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~
** Bu işlevi güvenli bir şekilde iletmek için küreye alıntı yapmanız gerekir **. * * Jtweet * 'bir şeyle eşleşirse, işlev görmeden önce genişletilecektir. (Veya diğer 'shopt' ayarlarına bağlı olarak hata veya boş dize). İlginç bir fikir olsa da. Dizin içinde bir jtweet.pm bile olsa, çoğunlukla çalışacağını düşünüyorum * jtweet * ''. Bununla birlikte, glob olmayan argalarda veya globda boşluklar veya diğer özel karakterler ile ilgili birçok potansiyel sorun var. –
BTW, çalışabilmesi için EXTENDED_GLOB'u izlemeliydim. –
'setopt no_CASE_GLOB' nedir? – ksoo