これでうまくいくと思いました:
find src -type f -regextype egrep -regex '.*(?<!\.d)\.ts'
しかし、それは何にもマッチしないようです。
私は that はうまくいくと思いますが、適切にエスケープしない限り、この "egrep"フレーバーは負の後方参照をサポートしないと思います。
参考のために、
% find src -type f
src/code-frame.d.ts # <-- I want to filter this out
src/foo.ts
src/index.ts
検索結果から.d.ts
ファイルを除外する別の簡単な方法はありますか?
% find --version
find (GNU findutils) 4.7.0-git
egrep
がその構文をサポートしているとは思いません(あなたの表現はPerl互換の正規表現です)。ただし、例では正規表現を使用する必要はありません。複数の-name
をテストして適用します!
必要に応じて否定:
find src -type f -name '*.ts' ! -name '*.d.ts'
ファイル名のみでフィルタリングし、不要なファイルのテストを無効にすることで、必要な結果を得ることができます。
find src -type f -name \*.ts ! -name \*.d.ts
簡単な(おそらく効率が悪い)アプローチは、不要な文字列を除外することができます。
find -name "*.ts" | egrep -v "\.d\.ts$"