`ack` tek bir dosyada satır numaralarını göstermiyor


17

Bir dize aramak için ack kullanıyorum. Dosya bağımsız değişkeni olmadan çalıştırdığımda satır numaraları alıyorum:

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

...

Ancak bir dosya belirtmeye çalıştığımda satır numarası almıyorum.

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

Bir geçiş için biraz googling yaptım, ancak sonuç bulamadım. Tek bir dosyadaki sonuçlarda bana satır numaralarını göstermekten nasıl alayım?

Yanıtlar:


21

Herhangi bir dosya sağlamadığınızda ack, geçerli dizindeki ve alt dizinlerdeki tüm dosyaları arar. Bir dosya eşleşen desen içeriyorsa, acko dosya adını, çizgi numarasını ve desenle eşleşen çizgiyi yazdırın.

Bu davranış bir dosya için geçerli değildir (bkz. Ack belgeleri , -Hseçeneği arayın ).

Ne zaman göreceli satır numarasıyla eşleşen satırı yazdıracak seçenek satırı ackolmadığından, bu soruna geçici bir çözüm bulmak için iki seçeneğiniz vardır.-ngrep

ackYazdırma dosya adını şununla zorlama -H:

ack -H pattern file

veya /dev/nullikinci dosya olarak iletme:

ack pattern file /dev/null

7

Seçenek ile deneyebilirsiniz --with-filename:

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

Bu sorun hata ve sorun buraya taşındıkça ortaya çıkar .


5

Bunun için bir seçenek olmalı. Ancak yoksa , komut satırında ackfazladan bir /dev/nullşey ileterek, aranacak iki dosya olduğunu düşünebilirsiniz :

ack function themes/README.txt /dev/null

Yan notta, grep(1)tek bir dosya ararken bile size bir dosya adı göstermek için aynı hile kullanılabilir :

grep function themes/README.txt /dev/null
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.