findとxargsを利用したgrepでマッチしたファイルをパスで絞り込む方法
現在、ファイルネームをfind
コマンドで絞り込み、パイプでxargs grep
して中身を検索したあとに、さらにその出力結果を、パスで絞り込むために、さらにパイプでgrep
を繋いでいます。しかし、この方法は同じようなコマンドを二度使っているのでちょっと冗長で、もう少しいい方法がないかと考えています。
具体的には以下のようなコマンドです:
$ find . -name "*.rb" | xargs grep "HogeHoge" | grep "app"
find
の使い方がこなれていないのも、上のように冗長になる要因ではあるかとは思いますが、できることならgrep
の何らかのオプションで出来る方法があれば教えて下さい。あるいは、この発想自体が筋が悪く、find
で対象パスを絞り込むべきならば、その方法を教えてください。