文字クラスの使用方法

文字クラスの使用方法

私のシステムの1つで実行すると、ls [:lower:]*小文字で始まるすべてのファイルが一覧表示されます。

別のケースではエラーを報告します。

ls: cannot access [:lower:]*: No such file or directory

作業ディレクトリには、小文字で始まるファイルがいくつかあります。

ls [[:lower:]]*代わりに、両方のシステムで実行が実行されます。ls [:lower:]*2番目のシステムでは、なぜ機能しないのか、文字クラスを使用する正しい方法は何であるかを知りたいです。

どちらもBashを実行しますが、他のシェルにも適用される答えが欲しいです。

答え1

最初の例は期待どおりには行われません。代わりに、次の文字で始まるすべてのファイル名を一覧表示します。

  • :
  • e
  • l
  • o
  • r
  • w

(この文字はlower並べ替えられた文字です。)文字クラスを使用するには、すでに角かっこ内になければなりません。それから[:lower:]2番目の例のようにを使用します。

関連情報