`ack` tidak menampilkan nomor baris pada satu file


16

Saya menggunakan ack untuk mencari string. Ketika saya menjalankannya tanpa argumen file, saya mendapatkan nomor baris:

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

...

Tetapi ketika saya mencoba menentukan file, saya tidak mendapatkan nomor baris.

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

Saya telah melakukan beberapa googling untuk beralih, tetapi tidak menemukan hasil. Bagaimana saya mendapatkan ack untuk menunjukkan kepada saya nomor baris pada hasil dari satu file?

Jawaban:


21

Ketika Anda tidak menyediakan file apa pun, ackakan mencari semua file di direktori dan subdirektori saat ini. Jika file berisi pola yang cocok, ackcetak nama file itu, nomor baris dan garis yang cocok dengan pola.

Perilaku ini tidak berlaku untuk satu file (Lihat dokumentasi ack , cari -Hopsi).

Karena ketika acktidak memiliki -ngaris opsi grep, yang akan mencetak garis yang cocok dengan nomor garis relatifnya, Anda memiliki dua pilihan untuk mengatasi masalah ini.

Memaksa acknama file cetak dengan -H:

ack -H pattern file

atau lewat /dev/nullsebagai file kedua:

ack pattern file /dev/null

7

Anda dapat mencoba dengan opsi --with-filename:

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

Masalah ini dimunculkan karena bug dan masalah telah dipindahkan di sini .


5

Seharusnya ada opsi untuk ini. Tetapi jika tidak ada, Anda bisa mengelabui ackdengan berpikir ada dua file untuk mencari, dengan melewati tambahan /dev/nullpada baris perintah:

ack function themes/README.txt /dev/null

Di samping catatan, trik yang sama dapat digunakan untuk membuat grep(1)Anda menunjukkan nama file bahkan ketika Anda sedang mencari file tunggal:

grep function themes/README.txt /dev/null
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.