再帰検索を実行すると、grepは相対ファイルパスを印刷します。

再帰検索を実行すると、grepは相対ファイルパスを印刷します。

私はこのプロジェクトがどのバージョンの休止状態に依存しているかを調べようとしています(私の質問に直交しています)。

私たちはいくつかのサブプロジェクトを含む親プロジェクトを持っており、これが1つ以上のプロジェクトにあることを知っていますpom.xml。問題は、一致を印刷するとその行だけが表示され、pom.xmlI want to Know which Child Projectで見つかったことですpom.xml

相対パスを印刷するにはどうすればよいですかgrep? (絶対パスも機能しますが、表示が悪いです。)これが可能でない場合は、他の提案を歓迎します。

$ grep -rI -3 org.hibernate pom.xml

ベストアンサー1

find、xargs、およびgrepを一緒に使用することをお勧めします。

 cd top-dir
 find . -print -name 'pom.xml' -print0 | xargs -0 grep -l pattern

見つかったディレクトリの特殊文字が保護され、正しく処理されるように -print0/-0 オプションを入れました。

上記は、パターンと一致する最上位ディレクトリに基づいてファイル名をリストします。

おすすめ記事