「.ts」は見つかりましたが、「.d.ts」は見つかりませんでした。

「.ts」は見つかりましたが、「.d.ts」は見つかりませんでした。

私はこれがトリックを実行すると思います。

find src -type f -regextype egrep -regex '.*(?<!\.d)\.ts'

しかし、何も一致しないようです。

私の考えではそれうまくいきますが、この「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

ベストアンサー1

構文がサポートされていないようですegrep(あなたの式はPerl互換の正規表現です)。ただし、例では正規表現を使用する必要はなく、複数の-nameテストを実行し、!必要に応じて否定を適用するだけです。

find src -type f -name '*.ts' ! -name '*.d.ts'

おすすめ記事