バッシュモードの問題

バッシュモードの問題

ディレクトリには、ファイル名に数字を含むいくつかのファイルがあり、その一部は "d"文字(必ずしも拡張子ではありません)で終わります。以下はファイルセットの例です。

alle5m6ilsd.d
alle34mails
alle34mailsd
allemails
allemails.d

数字を含めて「d」で終わるファイル名を選択するUNIX bashコマンドを作成したいと思います。したがって、私の答えは次のようになります。

alle5m6ilsd.d 
alle34mailsd 

答え1

グローバルモードを使用できます。

*[[:digit:]]*d
  • *0個以上の文字の一致

  • [:digit:]あなたの数字と一致locale

  • dd最後に文字通りの意味を一致させてください。

localeASCII文字セットにのみ依存したくない場合:

*[0-9]*d

例:

% ls               
alle34mails  alle34mailsd  alle5m6ilsd.d  allemails  allemails.d

% ls *[[:digit:]]*d
alle34mailsd  alle5m6ilsd.d

答え2

修正されたパターンは次のようになります。

*[[:digit:]].*d$

または

*[0-9].*d$

heemaylの説明を追加すると、数字だけが一致すると、OP要件の対応する部分を満たすことができます。その後、デジタルの後に.*他の数字を含めることができる他の文字を許可する必要があります。その後、リテラルが必要ですdが、文字列の末尾に固定する必要があります$。 heemaylのパターンはOPの2つの例と一致せず、dOPの基準に応じて数字の直後の項目(必ずしも終了する必要はありません)と間違って一致します。

関連情報