Linux でファイルを探しているが、その名前を忘れてしまったとします。覚えているのはファイルの内容だけです。この場合、どうやってファイルを見つけますか? Linux では、特定のテキスト (または文字列) を含むファイルを見つけるのに役立つ便利な方法がいくつかあります。文字列はユーザーが指定する必要があります。それでは、メソッドを見てみましょう。
Linux で特定のテキスト (文字列) を含むすべてのファイルを検索する方法
方法 1: grep コマンド
grepコマンド Linux では、特定のテキストまたは文字列を含むファイルを検索するために使用されます。デフォルトでは、特定のテキストを含むファイル内の行が表示されます。 -l オプションを追加すると、コマンドは特定のテキストを含むすべてのファイルを表示します。
例:
ubuntuのipconfig
file1.txt と file2.txt という名前の 2 つのファイルを含むディレクトリがあるとします。
file1.txt の内容:
This line contains text.>
file2.txt の内容:
You should learn Data Structures & Algorithms.>
次に、-l オプションを指定して grep コマンドを使用して、現在のディレクトリ内にある指定されたファイル内のテキストを検索します。次の例を参照してください。

上記の例から、grep コマンドが file1.txt 内の指定された文字列を正常に検出したことが明確に言えます。その結果、画面上にファイル名が表示されました。
-i オプションを使用して、grep に大文字と小文字を無視するように指示することもできます。次の例を見てください。

上記では、最初に前のコマンドを使用しましたが、指定された文字列は Text です。 file1.txt にはテキストではなくテキストが含まれるため、考慮されません。ここでは、この場合を念頭に置いて検索を行う。次に、-i オプションを使用しました。その結果、大文字と小文字は無視され、指定された文字列は file1.txt に含まれる文字列と一致します。したがって、ファイル名が画面に表示されます。
もう 1 つのバリエーションは、-r オプションを使用することです。 grep が現在のディレクトリとそのサブディレクトリで指定された文字列を再帰的に検索することを提案します。以下の例を見てください。

file1.txt と file2.txt は、現在のディレクトリ (デスクトップなど) ではなく、files フォルダーにあります。したがって、-r オプションを使用しない場合、一致する文字列を持つファイルは現在のディレクトリに存在しないため、見つかりません。ただし、-r オプションを使用し、ファイル名も省略しました。その結果、grep は現在のディレクトリだけでなく、そのサブディレクトリでも一致する文字列を検索します。したがって、file1.txt が検出され、画面に表示されます。
方法 2: find と grep コマンドの組み合わせ
探す も Linux の便利なコマンドです。 find と -type f オプションを組み合わせてファイルを検索し、-exec オプションを組み合わせて見つかったファイルの grep に適用します。次の例を見てください。

明らかに、検索操作により、一致する文字列が含まれる file1.txt が見つかります。したがって、ファイル名が画面に表示されます。
方法 3: mc を使用して特定のテキストを含むファイルを検索する
Midnight Commander (mc) を使用してファイルを検索することもできます。アプリケーションを開き、Alt + Shift + ? を押します。をクリックして、「ファイルの検索」ダイアログボックスを開きます。上部に開始ボックスが表示されます。ボックスに、ファイルが存在するパスを入力します。次に、コンテンツ ボックスの下に、検索する文字列を入力します。この例では、Files ディレクトリ内のテキストを検索しました。

以下では、検索操作により、一致する文字列を含む file1.txt が正常に検出されたことが明確にわかります。

方法4: ripgrepコマンド
ripgrep (rg と表記) は、grep コマンドの代替として使用できるコマンドです。実装は以下のとおりです。
配列Javaを返す方法

file1.txtが見つかったので、画面にファイル名が表示されます。
方法 5: ack コマンド
使用できるさらに別のコマンドは ack コマンドです。実装は次のとおりです。

file1.txt が正常に検出され、画面に表示されます。