Je pensais que cela ferait l'affaire:
find src -type f -regextype egrep -regex '.*(?<!\.d)\.ts'
Mais cela ne semble correspondre à rien.
Je pense que que devrait fonctionner, mais je suppose que cette saveur "egrep" ne supporte pas les références négatives à moins que je n'échappe pas à quelque chose correctement.
Pour référence,
% find src -type f
src/code-frame.d.ts # <-- I want to filter this out
src/foo.ts
src/index.ts
Existe-t-il un autre moyen rapide de filtrer .d.ts
fichiers de mes résultats de recherche?
% find --version
find (GNU findutils) 4.7.0-git
Je ne crois pas que egrep
supporte cette syntaxe (votre expression est une expression régulière compatible Perl). Mais vous n'avez pas besoin d'utiliser d'expressions régulières dans votre exemple, il suffit d'avoir plusieurs -name
teste et applique un !
négation selon le cas:
find src -type f -name '*.ts' ! -name '*.d.ts'
Vous pouvez obtenir le résultat souhaité en filtrant uniquement sur les noms de fichiers, annulant le test pour les fichiers dont vous ne voulez pas:
find src -type f -name \*.ts ! -name \*.d.ts
Une approche simple (peut-être moins efficace) peut être de filtrer la chaîne de refus.
find -name "*.ts" | egrep -v "\.d\.ts$"