GNU/Linux >> Linux の 問題 >  >> Linux

Linuxでファイル内の文字列を見つける方法

ファイル内の特定の単語や文字列を検索する必要がある場合があります。これを行うために、ほとんどすべてのテキストエディタには、役立つGUI実装があります。ただし、Linuxユーザーの場合、コマンドラインからこれらの検索を実行する方がはるかに生産的で便利です。

実際、Linuxには強力で便利なコマンドラインユーティリティ(この目的のためのgrepコマンド)があります。これを使用すると、1つのファイルだけでなく複数のファイルで特定の文字列を検索して、より包括的な検索を行うことができます。

ただし、grepコマンドを使用する前に、まずその動作と構文を理解する必要があります。そのため、役立つように、grepコマンドを使用してLinux上のファイル内の文字列を検索するための詳細なガイドをまとめました。それだけでなく、コマンドラインテキストエディタとGUIテキストエディタを使用してファイル内の文字列を検索する方法も示します。

注:このチュートリアルでは、demofile.txtとdemofile02.txtの2つのデモテキストファイルを作成しました。 grepコマンドを使用して、これらのファイル内の文字列を検索します。これらのファイルの両方の内容を見て、コマンドがどのように機能しているかを確認してください。

demofile.txtの内容:

This is a demo file that I have created for demonstration purposes.
This contains a bunch of words to create sentences that finally end with a period.
This is for the grep example.

demofile02.txtの内容:

This is another demo file that I'll use for this demonstration.
This one is similar to the last one as it contains three lines with some words.
This second file will help to provide some diversified examples.

コマンドラインからファイル内の文字列を検索する(GREPメソッド)

GREPは、Global RegularExpressionPrintの略です。 Linuxシステム全体を検索できるため、「グローバル」です。 「正規表現」は、コマンドで使用するテキスト検索パターンと呼ばれるものです。また、「印刷」は、提供された正規表現に基づいて一致するものが見つかるとすぐに検索結果を印刷することを意味します。

grepコマンドが何であるかがわかったので、それをどのように使用できるかを見てみましょう。 grepコマンドを使用してファイル内の文字列を検索するための構文は次のとおりです。

$ grep string filename

式「string」を使用する「正規表現」に置き換え、「filename」を文字列を検索するファイルの名前に置き換える必要があります。

#1。 GREPを使用して1つのファイル内の文字列を検索する

したがって、ファイル「demofile.txt」で「デモンストレーション」という単語を検索する場合は、次のコマンドを使用する必要があります。

$ grep demonstration demofile.txt

これにより、出力が得られます:

ご覧のとおり、コマンドは指定された文字列を含む行全体をフェッチします。指定された文字列が複数行にある場合は、それらすべてが出力されます。 「demofile.txt」ファイルで文字列「This」を検索して、機能するかどうかを確認しましょう。

$ grep This demofile.txt

そして、出力は次のとおりです。

最初に文字列「this」を使用した方法に注意してください。何も出力されませんでした。 「これ」と入力した場合にのみ、一致します。そのため、grepコマンドでは大文字と小文字が区別されることに注意してください。

大文字と小文字を区別しない場合は、代わりに次のコマンドを入力する必要があります:

$ grep -i this demofile.txt

ご覧のとおり、提供された文字列は「this」ですが、コマンドは「This」と一致し、その回答を出力します。

#2。 GREPを使用して複数のファイルで同じ文字列を検索する

提供された文字列を複数のファイルで検索するには、コマンドにすべてのファイル名を追加するだけです。

これが例です。ここでは、ファイル「demofile.txt」および「demofile02.txt」で文字列「words」を検索しています。

$ grep words demofile.txt demofile02.txt

そして、出力は次のとおりです。

ご覧のとおり、grepコマンドは一致した結果を表示するだけでなく、どのファイルからのものであるかを便利にラベル付けします。

#3。 GREPを使用して複数のファイルから複数の文字列を検索する

grepを使用して、単一または複数のファイル内の複数の文字列を検索することもできます。これは、使用する必要のある構文です:

$ grep -E 'pattern1|pattern2|pattern3|...' filename1 filename2 filename3 ...

入力した-Eオプションは、次のパターンを拡張正規表現として扱い、複数の文字列を検索できるようにします。

次に、学習した内容を使用して、「demofile.txt」と「demofile02.txt」の2つのファイルで文字列「file」と「words」を検索します。

$ grep -E 'file|word' demofile.txt demofile02.txt

そして、出力は次のとおりです。

#4。 GREPコマンドを使用して文字列を検索するためのヒントとコツ

全体的に単純ですが、grepコマンドは非常に強力です。 grepコマンドを使用して高度な文字列検索を行う方法をいくつか紹介します。

たとえば、ワイルドカードでgrepコマンドを使用できることをご存知ですか?このコマンドについて考えてみましょう:

$ grep word demofile*

これにより、出力が得られます:

ご覧のとおり、コマンドはファイル「demofile.txt」と「demofile02.txt」の両方の結果を検索して表示しています。これは、任意の文字の1つまたは複数の出現を表すために使用されるアスタリスク(*)ワイルドカードを使用したためです。

さまざまな種類のワイルドカードとその使用方法の詳細については、次の記事を参照してください。Linuxのワイルドカードについて10の例で説明しています。

次に進むと、grepコマンドは多数のコマンドオプションもサポートしています。すでに2つ見ています:

  • -i:大文字と小文字を区別するために使用されます。
  • -E:次の文字列を拡張正規表現として扱うために使用されます。

他にも、次のようなgrepコマンドオプションがたくさんあります。

  • -r:再帰検索を実行します。
  • -c:文字列が出現した合計回数をカウントします。
  • -n:文字列が出現した行番号を出力します。
  • -o:一致する文字列のみを印刷し、行全体は印刷しません。

これまでに説明したことはすべて、ファイル内の文字列を検索するのに十分なはずです。ただし、GREPコマンドをマスターしたい場合は、次の2つの記事を確認することをお勧めします。

  • LinuxでのGREPコマンドの使用例
  • LinuxでのGREPコマンドの上位5つの使用法

コマンドラインからファイル内の文字列を検索する(コマンドラインテキストエディタを使用)

grepコマンドは、高度な検索を実行して、LinuxPC上の複数のファイルやディレクトリと文字列を照合するのに役立つ強力なツールです。ただし、コマンドラインテキストエディタでファイルを既に開いている場合は、ファイルエディタを終了してgrepコマンドを使用する必要はありません。

実際、ほとんどのコマンドラインテキストエディタには、すでに組み込みの検索機能が備わっています。

現在、このチュートリアルの範囲を超えて、すべてのコマンドラインテキストエディタと、そのテキストエディタで開かれたファイル内の文字列を検索する方法について説明しています。そのため、使用する必要のある最も人気のある2つのコマンドラインテキストエディタを見ていきます。

nanoでテキスト文字列を見つける方法は?

nanoテキストエディタでファイルを開いたとします。その場合、Ctrl + Wを押すだけで、文字列を入力するための新しいプロンプトが表示されます。

完了したら、Enterキーを押すと、検索された文字列が最初に出現した最初の文字にカーソルが移動します。 Enterキーを押し続けると、他の文字列インスタンスにジャンプできます。

vimでテキスト文字列を見つける方法は?

vimテキストエディタを使用している場合は、:/に続けて検索する文字列を入力し、Enterキーを押します。以前と同様に、検索された文字列の最初の出現箇所にカーソルが移動します。ここでも、Enterキーを押し続けると、文字列の他のインスタンスにジャンプできます。

コマンドライン(GUIメソッド)を使用してファイル内の文字列を検索する

ファイル内の文字列を検索するためのGUIメソッドもあります。本質的には、MicrosoftWordで見られる「検索と置換」機能に似ています。ただし、使用しているGUIテキストエディタによって異なります。

ご存知のように、何百ものテキストエディタがあり、ここでそれらすべてを網羅することは現実的ではありません。ただし、これらはすべて同じように機能するため、そのうちの1つがどのように機能するかを理解すれば、他のユーザーとの共同作業に問題はありません。

このチュートリアルでは、Ubuntuに付属している「テキストエディタ」と呼ばれるデフォルトのテキストエディタを使用します。

画像からわかるように、エディターでdemofile.txtを開きました。次に、ドロップダウンメニューをクリックすると、[検索]と[検索と置換]のオプションが表示されます。これらのオプションを使用して、開いているファイル内の任意の文字列を検索できます。

まとめ

これで、Linuxでファイル内の文字列を検索するためのこの短いチュートリアルは終わりです。これがお役に立てば幸いです。また、Linuxシステムで特定の文字列を検索する方法の生産性を高めるのに役立つことを願っています。

ご不明な点がございましたら、コメントをお寄せください。お問い合わせのお手伝いをさせていただきます。

Linuxを使い始めている場合は、LearnLinuxシリーズをチェックすることを忘れないでください。初心者から上級者まで、真のLinuxパワーユーザーになるために設計された、すばらしいチュートリアル、ハウツー、ガイドがたくさんあります。


Linux
  1. Linux –ファイルの作成日を見つける方法は?

  2. Linuxでファイルの名前を変更するにはどうすればよいですか?

  3. Linuxで文字列を含む行を見つける方法

  1. Linuxでファイルを見つける方法

  2. ファイル内で \n を grep する方法

  3. grep コマンドを使用して Linux で name=php.ini のファイルを検索する方法

  1. Linuxのディレクトリツリーで最も古いファイルを見つける方法

  2. Linuxgrepコマンド

  3. Linux で削除されたファイルを復元するには?