複数の数値を含む正規表現ファイル名

複数の数値を含む正規表現ファイル名

次のようなファイルがあるとしましょう。

test_file-1234-master.tar.gz

tar次のコマンドを使用してキャンセルしようとしました。

 tar -xf test_file-[0-9]+-master.tar.gz
 tar -xf test_file-[:digit]-master.tar.gz

しかし幸運はありません。このパターンをどのように合わせますか?

メモ:常にファイルがあります。複数のファイルを開いたくありません。

ベストアンサー1

+拡張正規表現メタ文字とPOSIX文字クラス(およびそれぞれ)をワイルドカードパターンとして使用しようとしました。[:digit:]

bash同様の「基本」ワイルドカードは、いくつかのワイルドカードのみをサポートすると仮定します。たとえば、次のようになります。

  • ?: 単一文字
  • *:0個以上の文字
  • []:キャラクタークラス
  • {}:リスト
  • [!]:文字クラスを否定する

拡張正規表現のメタ文字とは異なり、「デフォルト」ワイルドカードでは、ワイルドカードの動作を固定された発生回数と一致するように変更することはできません。

したがって、「基本」ワイルドカードを使用すると、最も短くて簡潔なパターンは次のようになります。

tar -xf test_file-[0-9][0-9][0-9][0-9]-master.tar.gz

おすすめ記事