特定のファイル名パターンと一致しないファイルの数を表示します。

特定のファイル名パターンと一致しないファイルの数を表示します。

以下のように、非標準と標準のファイル名があります。非標準ファイルの数を取得する必要があります。

標準ファイル名:XYZアルファベット.txt,XYZアルファベット.csv、*.msg

非標準ファイル名:989875.txtまたはmyname.csv;境界がなく、何でも可能です。

唯一の良いことは、標準項目を知っていて、単純なfindコマンドでNOT条件を実行するだけです。私は何をすべきですか?ファイルループなどの実行に興味はありません。

ベストアンサー1

与えられた

$ ls
 989875.txt   myname.csv  'some long.msg'   XYZABC.csv   XYZABC.txt

それから

$ find . ! \( -name 'XYZABC.*' -o -name '*.msg' \)
.
./myname.csv
./989875.txt

例えば

$ find . -type f ! \( -name 'XYZABC.*' -o -name '*.msg' \) -printf '1' | wc -c
2

おすすめ記事