`ack` n'affiche pas les numéros de ligne sur un seul fichier


16

J'utilise ack pour rechercher une chaîne. Lorsque je l'exécute sans argument de fichier, j'obtiens des numéros de ligne:

$> ack function
themes/README.txt
7:Drupal's sub-theme functionality to ensure easy maintenance and upgrades.

sites/default/default.services.yml
48:    # - The dump() function can be used in Twig templates to output information

...

Mais lorsque j'essaie de spécifier un fichier, je n'obtiens pas de numéros de ligne.

$> ack function themes/README.txt
Drupal's sub-theme functionality to ensure easy maintenance and upgrades.

J'ai fait quelques recherches sur Google pour un commutateur, mais je n'ai trouvé aucun résultat. Comment puis-je obtenir ack pour me montrer les numéros de ligne sur les résultats d'un seul fichier?

Réponses:


21

Lorsque vous ne fournissez aucun fichier, ackrecherchera tous les fichiers dans le répertoire et les sous-répertoires actuels. Si un fichier contient un motif correspondant, ackimprimez ce nom de fichier, le numéro de ligne et la ligne qui correspond au motif.

Ce comportement ne s'applique pas à un seul fichier (voir la documentation ack , rechercher l' -Hoption).

Étant donné que quand ackn'a pas de -nligne d'option grep, qui imprimera la ligne correspondant à son numéro de ligne relatif, vous avez deux choix pour contourner ce problème.

Forcer le acknom du fichier d'impression avec -H:

ack -H pattern file

ou en passant /dev/nullcomme deuxième fichier:

ack pattern file /dev/null

7

Vous pouvez essayer avec option --with-filename:

ack --with-filename 'function' themes/README.txt

Ce problème est soulevé comme bogue et le problème a été déplacé ici .


5

Il devrait y avoir une option pour cela. Mais si ce n'est pas le cas, vous pouvez ackpenser qu'il y a deux fichiers à rechercher, en passant un extra /dev/nullsur la ligne de commande:

ack function themes/README.txt /dev/null

En passant, la même astuce peut être utilisée pour vous grep(1)montrer un nom de fichier même lorsque vous recherchez un seul fichier:

grep function themes/README.txt /dev/null
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.