Avec la commande normale grep
, il y a une option --exclude
(Couverte en détail ici: tilisez la syntaxe grep --exclude/- include pour ne pas grep à travers certains fichiers ) qui vous permet d'ignorer des fichiers spécifiques lorsque vous saluez.
L'option --type
D'Ack prend en charge 95% des cas où vous souhaitez exclure des fichiers, mais elle ne gère pas (pour autant que je sache) le cas de l'exclusion d'un fichier spécifique. J'ai un fichier JS compilé qui contient le contenu de tous les autres fichiers JS (sur une seule ligne), donc chaque fois que je sollicite quelque chose Je récupère tout le contenu de ce fichier géant compilé.
Je détesterais devoir abandonner ACK et revenir à grep à ce sujet, mais c'est vraiment ennuyeux. S'il vous plaît, quelqu'un me dit qu'il existe un moyen d'exclure des fichiers spécifiques des recherches d'acquittement.
Non, ack 1.x ne vous permettra pas d'exclure un seul fichier. Dans ack 2. , vous pouvez. ack 2.0 était actuellement dans sa première alpha est maintenant la version actuelle recommandée de ack.
En ce qui concerne votre cas spécifique du fichier Javascript minifié, quelle version d'ack utilisez-vous? ack 1.96 devrait ignorer le JavaScript minifié basé sur l'extension. Si la vérification d'extension ne fonctionne pas, vous pourriez probablement pirater ack lui-même, car il s'agit d'un seul programme Perl. Vous pouvez pirater le is_searchable
fonction.
Dans ack 2.0, nous cherchons à ignorer toute ligne dépassant, disons, 500 caractères car ce n'est clairement pas du code source.
Vous pouvez également nous rejoindre sur la liste de diffusion ack-users . Nous sommes assez réactifs.
Pour ignorer un seul fichier en utilisant ack 2.0, fournissez une spécification de filtre à l'indicateur --ignore-file:
--ignore-file=is:cljout.js
Si vous exécutez ack --create-ackrc
il produira un tas de préréglages pour des fichiers communs comme javascript minifié, css et des répertoires comme node_modules et .git. Très utile!
Voici l'option js minifiée:
# minified Javascript
--ignore-file=match:/[.-]min[.]js$/
--ignore-file=match:/[.]js[.]min$
Si vous souhaitez l'enregistrer dans .ackrc
courir
ack --create-ackrc >> ~/.ackrc
puis supprimez ce dont vous n'avez pas besoin de ce fichier.
Aussi bon à savoir avec ack2.0, vous pouvez spécifier ces options dans un .ackrc
file si vous devez filtrer fréquemment les fichiers.
Si vous souhaitez exclure un dossier spécifique, la commande suivante peut vous aider:
ack keywords --ignore-dir folder_name
man ack
fournira plus de détails :)
- [no] ignore-dir = DIRNAME, - [no] ignore-directory = DIRNAME
--ignore-file = FILTERTYPE: FILTERARGS