特定のパターンに一致するファイルを一覧表示し、他のパターンに一致するファイルを無視しますか?

特定のパターンに一致するファイルを一覧表示し、他のパターンに一致するファイルを無視しますか?

a1、a2、a3、b1、b2、b3 ファイルを含むディレクトリがあるとします。で始まりますaが、含めずに一致させたいです3。試しましたが一致しなかったにもls -I "*3" *a*返されました。可能ですか?a1 a2 a3a3ls

ベストアンサー1

のみ:

shopt -s extglob failglob
ls -d a!(*3*)
  • shopt -s extglob拡張ワイルドカードを有効にします(ksh拡張演算子のサブセットを有効にします)。
  • failglob一致するものがない場合は、グローバルモードをそのままにする代わりにコマンドをキャンセルします。これがa!(*3*)なければ、呼び出したファイルに3
  • a試合開始a
  • !()()内の一致を否定します。
  • *3*これ3とその前後に来るすべて。

$ touch 1 2 3 a1 a2 a3 b1 b2 b3 aa1 aa2 aa3 a2a a3a
$ ls -d a!(*3*)
a1  a2  a2a  aa1  aa2

おすすめ記事