ルートディレクトリで作業しており、大文字で始まるディレクトリエントリを印刷したい。
$ echo [A-Z]*
Applications Library Network System Users Volumes bin cores dev etc home installer.failurerequests net private sbin tmp usr var vm
cores dev etc home installer.failurerequests net private sbin tmp usr var vm
が私のパターンに一致することを期待していなかったため、結果は私を混乱させます。
大文字のみに一致するglobパターンを作成するにはどうすればよいですか?
これは、グロブパターン[A-Z]
が通常大文字に対応していないためです。具体的には、
現在のロケールの照合シーケンスと文字セット
大文字で始まるファイルが必要な場合は、使用できます
echo [[:upper:]]*
または明示的にロケールを設定します
(LC_COLLATE=C; echo [A-Z]*)
または、bash globasciiranges
Shellオプションを使用します
(shopt -s globasciiranges; echo [A-Z]*)
Pattern matching
のman bash
セクションを参照してください