GNU/Linux >> Linux の 問題 >  >> Linux

zsh/bash で大文字と小文字を区別しない Glob

ZSH:

$ unsetopt CASE_GLOB

または、一般的に大文字と小文字を区別しないグロビングを有効にしたくない場合は、可変部分に対してのみ有効にすることができます:

$ print -l (#i)(somelongstring)*

これは、「somelongstring」で始まるすべてのファイルに一致します (小文字/大文字の任意の組み合わせ)。大文字と小文字を区別しないフラグは、括弧内のすべてに適用され、複数回使用できます。マニュアルを読む zshexpn(1) 詳細については、

更新 ほとんど忘れていましたが、これを機能させるには、extendend グロビングを有効にする必要があります:

setopt extendedglob

このリストをどのくらい深くしたいかによって、find はこの点に関して非常に多くのことを提供します:

find . -iname 'SomeLongString*' -maxdepth 1

これにより、現在のディレクトリ内のファイルのみが表示されます。ここで重要なのは -iname です -name の代わりのパラメーター .


バッシュ:

shopt -s nocaseglob


$ 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~

Linux
  1. Zshでアスタリスク「*」を取得してBashと同じ動作をさせるにはどうすればよいですか?

  2. 再帰的なグロブ?

  3. jenkins パイプラインで bash コマンドを実行する

  1. 行番号のない Bash 履歴

  2. bash - 大文字と小文字を区別しない変数のマッチング

  3. コマンド ライン (ZSH/BASH) で一連のファイルをコピーする

  1. zshで数値変数をゼロパディングする方法(おそらくbashも?)

  2. bash スクリプトと zsh シェルでの配列の動作 (開始インデックス 0 または 1?)

  3. <() の bash (および =() の zsh) とは正確には何ですか?