`ack` không hiển thị số dòng trên một tệp


16

Tôi đang sử dụng ack để tìm kiếm một chuỗi. Khi tôi chạy nó mà không có đối số tệp, tôi nhận được số dòng:

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

...

Nhưng khi tôi cố gắng chỉ định một tệp, tôi không nhận được số dòng.

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

Tôi đã thực hiện một số việc để chuyển đổi, nhưng không tìm thấy kết quả. Làm cách nào để có được ack để hiển thị cho tôi số dòng trên kết quả từ một tệp?

Câu trả lời:


21

Khi bạn không cung cấp bất kỳ tệp nào, acksẽ tìm kiếm tất cả các tệp trong thư mục và thư mục con hiện tại. Nếu một tệp chứa mẫu phù hợp, hãy ackin tên tệp đó, số dòng và dòng phù hợp với mẫu.

Hành vi này không áp dụng cho một tệp (Xem tài liệu ack , tìm kiếm -Htùy chọn).

Vì khi ackkhông có -ndòng tùy chọn grep, dòng in sẽ khớp với số dòng tương đối của nó, bạn có hai lựa chọn để giải quyết vấn đề này.

Buộc acktên tệp in bằng -H:

ack -H pattern file

hoặc chuyển qua /dev/nulldưới dạng tệp thứ hai:

ack pattern file /dev/null

7

Bạn có thể thử với tùy chọn --with-filename:

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

Vấn đề này được nêu ra là lỗi và vấn đề đã được chuyển đến đây .


5

Cần có một lựa chọn cho việc này. Nhưng nếu không có, bạn có thể acknghĩ rằng có hai tệp để tìm kiếm, bằng cách chuyển thêm /dev/nullvào dòng lệnh:

ack function themes/README.txt /dev/null

Ở một ghi chú bên cạnh, có thể sử dụng thủ thuật tương tự để grep(1)hiển thị cho bạn tên tệp ngay cả khi bạn đang tìm kiếm một tệp:

grep function themes/README.txt /dev/null
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.