部分名に基づいて複数のファイルから特定の文字列を1つずつ取得する方法

部分名に基づいて複数のファイルから特定の文字列を1つずつ取得する方法

私の問題を説明するために最善を尽くしますが、英語を許してください。

私がやりたいことは簡単なようですが、これまでに見つけたすべてのソリューションは機能しません。

名前の一部に基づいてディレクトリ内の各ファイルを「慎重に調査」し、見つかった各ファイルに特定の文字列が含まれていることを確認し、含まれている場合は1または0を返すシェルスクリプトを作成したいと思います。

これまで試したコードは次のとおりです。 ここに画像の説明を入力してください。

大丈夫です。

答え1

これにより、*$name*名前が一致するファイルが出力され、次のものが含まれますpattern

shopt -s globstar # needed to be able to use **
grep -l "pattern" **/*"$name"*

必要に応じて、後でglobstarを再度無効にできます。

shopt -u globstar

代替用途find:

find . -name "*$name*" -exec grep -l "pattern" {} \;

関連情報