特定の拡張子で終わり、特定の文字列を含むすべてのファイルをGrepします。

特定の拡張子で終わり、特定の文字列を含むすべてのファイルをGrepします。

私のディレクトリに.shファイルと.batファイルがあります。 「JAVA_HOME」という単語を含む.shファイルのみをリストしたいと思います。

私はgrep -rl "JAVA_HOME" | grep "*.sh"grep -rl "JAVA_HOME" *.shそしていくつかの他のランダムなものを試しましたが、そのうちの何も動作しませんでした。誰かが私を助けることができますか?ありがとうございます。

答え1

-rすでにGNU grep(with)を使用しているようですので、--include一致するファイル名のみを検索するオプションを追加してください。

grep -rl --include='*.sh' "JAVA_HOME"

関連情報