`ack` nie pokazuje numerów linii na jednym pliku


17

Używam ack do wyszukiwania ciągu. Kiedy uruchamiam go bez argumentu pliku, otrzymuję numery wierszy:

$> 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

...

Ale kiedy próbuję określić plik, nie otrzymuję numerów linii.

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

Zrobiłem trochę googling dla zmiany, ale nie znalazłem żadnych wyników. Jak uzyskać potwierdzenie, aby pokazywało mi numery linii na wynikach z jednego pliku?

Odpowiedzi:


21

Jeśli nie podasz żadnego pliku, ackwyszuka wszystkie pliki w bieżącym katalogu i podkatalogach. Jeśli plik zawiera pasujący wzór, ackwydrukuj tę nazwę pliku, numer linii i linię, która pasowała do wzorca.

To zachowanie nie dotyczy jednego pliku (patrz dokumentacja potwierdzenia , wyszukaj -Hopcję).

Ponieważ gdy acknie ma -nlinii opcji grep, która wypisze linię dopasowaną do jej względnego numeru linii, masz dwie możliwości obejścia tego problemu.

Wymuszanie ackwydruku nazwy pliku za pomocą -H:

ack -H pattern file

lub przekazując /dev/nulljako drugi plik:

ack pattern file /dev/null

7

Możesz spróbować z opcją --with-filename:

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

Ten problem został podniesiony, ponieważ błąd został przeniesiony tutaj .


5

Powinna być na to opcja. Ale jeśli nie, możesz oszukać, ackże są dwa pliki do przeszukania, przekazując dodatkowy /dev/nullw wierszu poleceń:

ack function themes/README.txt /dev/null

Na marginesie, tę samą sztuczkę można wykorzystać, aby grep(1)pokazać nazwę pliku nawet podczas wyszukiwania pojedynczego pliku:

grep function themes/README.txt /dev/null
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.