`ack`は個々のファイルの行番号を表示しません。

`ack`は個々のファイルの行番号を表示しません。

文字列を検索するためにackを使用しています。ファイル引数なしで実行すると、行番号が表示されます。

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

...

ただし、ファイルを指定しようとすると、行番号がわかりません。

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

いくつかのスイッチを検索しましたが、結果が見つかりませんでした。単一ファイル結果の行番号表示の確認をどのように受け取ることができますか?

答え1

ファイルを指定しないと、ack現在のディレクトリとサブディレクトリのすべてのファイルが検索されます。ファイルに一致するパターンが含まれている場合は、ファイルack名、行番号、およびパターンに一致する行が印刷されます。

この動作はファイルには適用されません(参照:文書の確認、検索-Hオプション)。

オプション行がackない場合は、相対行番号と一致する行を印刷するため、この問題を解決するには2つのオプションがあります。-ngrep

ackファイル名の強制印刷-H:

ack -H pattern file

または、/dev/null2番目のファイルに渡されます。

ack pattern file /dev/null

答え2

オプションを試すことができます--with-filename

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

この質問は次のように提起されました。抜け穴質問が移されましたここ

答え3

オプションが必要です。ただし、そうでない場合は、コマンドラインに追加のackコンテンツを渡して、検索するファイルが2つあると思うように欺くことができます。/dev/null

ack function themes/README.txt /dev/null

参考までに、grep(1)単一のファイルを検索しても同じ方法でファイル名を表示できます。

grep function themes/README.txt /dev/null

関連情報