少なくともCentOSシステムと以前のバージョンのFedoraでは、次のコマンドを実行して、対応するgrep一致のファイルのリストを取得できます。
$ find -name "version.php" -type f | xargs grep "^\$wp_version" site.com/wp-includes/version.php:$wp_version = '4.7.3';
少なくともFedora 22以降では、同じコマンドを実行するとパスとファイル名は含まれなくなります。
find -name "version.php" -type f | xargs grep "^\$wp_version" $wp_version = '4.7.3';
パスのみを表示するために-lを含めることができることを知っていますが、一致を失うことなくパスを含める方法はありますか? manファイルには何も表示されません。
答え1
CentOS / Fedora、したがってGNU grepを仮定すると、次のスイッチがあります:
-H, --with-filename
Print the file name for each match. This is the default
when there is more than one file to search.
つまり、動作の違いは、最初のケースでは、findが複数のファイルをキャプチャしてgrep
ファイル名を一覧表示することです。 2番目のケースでは、1つのファイルのみが一致すると名前が失われます。
したがって、-H
手動で追加して強制的に適用してください。