Grepコマンド:ターミナルからテキストを検索するための強力なツール

Grepコマンド

コンピューターを持っているか、コンピューターを使用しているほとんどの人は、テキストを検索するためのキーボードショートカットCtrl + Fを知っています。 「F」は英語の「Find」、「to find」に由来し、たとえば、Webページ上のテキストを検索するために使用できます。 このショートカットは多くのアプリケーションでも利用できます。「検索」に「B」を使用するプログラムもありますが、これらのショートカットは、アプリケーション内にいてファイルを開いている場合にのみ機能します。 Linuxには、ターミナルから起動できる非常に強力なツールがあります。 私たちのチームにあるテキストを見つけて、コマンドを使用します grep.

grep これは、指定したファイル内のテキストを見つけるのに役立つコマンドです。 その名前はg / re / pに由来します。これは、Unix / Linuxテキストエディタで同様の機能を実行するコマンドです。 他の多くのコマンドと同様に、 grep 多くを持っています 手紙の形で追加する利用可能なオプション それぞれが異なるタスクを実行します。 これらのオプションを組み合わせることで、XNUMXつ以上のファイルで複雑な検索を実行できるようになります。 ここでは、あなたが知る必要があるすべてを示します。

とともに grep 任意のファイルに任意のテキストが見つかります

まず、利用可能なオプションについて説明します。

  • i:大文字と小文字を区別しません。
  • w:特定の単語のみを検索するように強制します。
  • v:一致しない行を選択します。
  • n:要求された単語の行番号を示します。
  • h:出力のUnixファイル名からプレフィックスを削除します。
  • r:ディレクトリを再帰的に検索します。
  • R:-rと同様ですが、すべてのシンボリックリンクをたどります。
  • l:選択した行のファイル名のみを表示します。
  • c-選択した行のファイルごとにXNUMXつのカウントのみを表示します。
  • -色:一致するパターンを色で表示します。

この記事の見出しにある画像で、そのパスにあるファイル「830.desktop」で「Images」という単語を探しました。 ご覧のとおり、私は次のように書いています。

grep Imágenes /home/pablinux/Documentos/830.desktop

この記事では、検索設定に応じて変更する必要のある例を作成することに注意してください。 「ファイル」、「単語」などと言うときは、ファイルをそのパスで参照します。 「grepImages830.desktop」と書いたばかりの場合、ファイルが存在しないというメッセージが表示されます。 または、ファイルがルートディレクトリにない場合はそうなります。

他の例は次のとおりです。

  • grep -i images /home/pablinux/Documentos/830.desktop、ここで「画像」は検索したい単語で、残りはファイルとそのパスです。 この例では、大文字と小文字を区別せずにファイル「830.desktop」で「画像」を検索します。
  • grep-R画像:「画像」という単語が見つかったディレクトリのすべての行とそのすべてのサブディレクトリを検索します。
  • grep-cサンプルtest.txt:これは私たちを探し、「example」が「test.txt」というファイルに表示される合計回数を示します。

grepを使用 ファイルを検索することもできます

830.desktopファイルを検索する場合は、次のコマンドを記述します。

grep 830.desktop

これにより、 個人用フォルダでファイル«830.desktop»を検索しますつまり、ファイルが別のユーザーの個人用フォルダーにある場合、そのファイルは見つかりません。 ユーザーにはパスワードなしで別のコンテンツにアクセスする権限がないため、これは世界で最も正常なことです。

再帰検索を実行する方法

grep それはまた私達を可能にします 定期的なルールまたはガイドラインに従って検索を実行する。 たとえば、「Pablinux」という単語を含む各ディレクトリ内のすべてのファイルを読み取ります。 このために私たちは書きます:

grep -r Pablinux /home/

まあ:

grep -R Pablinux /home/

「Pablinux」の結果は、それが見つかったファイルの名前が前に付いた別の行に表示されます。 データ出力にファイル名を表示したくない場合は、-hオプションを使用します(「hide」から; hide):

grep -h -R Pablinux /home/

オプションを結合して、引用符なしで「-hR」と書くことができます。

正確な単語検索を行う方法

他の何かを検索したいものを含むファイルがある場合があります。 たとえば、これは複合語で発生する可能性があり、「森」を検索することで「レンジャー」を見つけることができます。 必要に応じて 正確な単語を見つける -wオプションを使用します。

grep -w bosques /home/pablinux/Documentos/vacaciones.txt

上記のコマンドは、指定されたパスのファイル「vacation.txt」で、レンジャーを無視して「フォレスト」を検索します。 XNUMXつの異なる単語を検索する場合は、次のコマンドを使用します。 egrep:

egrep -w bosques|plantas /ruta/del/archivo

ファイルに単語が何回出現するかを知る

grep それはまた可能です 単語が出現する回数を数える ファイル内。 このために、-cオプションを使用します。

grep -c prueba /ruta/al/archivo

オプション-nを追加すると、単語が表示される行の番号が表示されます。

逆引き

逆のこともできます。 単語を含まない行を検索する。 このために、次のようになる-vオプションを使用します。

grep -v la ruta/al/archivo

上記のコマンドは、「the」という単語を含まないすべての行を表示します。 これは、単語が何度も繰り返されるドキュメントやリストで役立ちます。何らかの理由で、残りの行にアクセスする必要があります。

を使用してシステム情報にアクセスする grep

PCモデル

grep ファイル内を検索できるだけではありません。 それも システム情報を表示できる。 前のスクリーンショットでは、私たちが持っているPCのモデルをどのように示しているかを見ることができます(これは世界で最も強力なラップトップではないことを私は知っています)。 このために、次のコマンドを使用しました。

cat /proc/cpuinfo | grep -i 'Model'

まあ:

grep -i 'Model' /proc/cpuinfo

ディスクユニットの名前を確認したい場合は、次のように記述します。

dmesg | egrep '(s|h)d[a-z]'

一致するファイル名のみを一覧表示する方法

検索に一致するファイルの名前のみを含むリストを表示する場合は、以下に示すように-lオプションを使用します。

grep -l 'main' *.c

そして、単語を色で見たい場合は、次のように記述します。

grep --color palabra /ruta/al/archivo

ご覧のとおり、コマンド grep です 非常に強力なツール 特に、どこに何かを書いたか、またはプログラミングで覚えていない場合は、それだけの価値があります。 さらに、ターミナル愛好家が好む方法でシステム情報を見つけるのに役立ちます。 テキストを見つけるコマンドに関するこのガイドはあなたに役立ちましたか grep?


コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:MiguelÁngelGatón
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。

  1.   ノルズリ

    こんにちは!
    Grepはファイルの検索にも使用されると言うとき、grep EXPRESSIONを実行してファイルを渡さないと、標準入力からのデータ入力を待機するため、正しくないと思います。
    マニュアルページによると:
    grepは、指定された入力ファイルで、指定されたPATTERNに一致する行を検索します。 ファイルが指定されていない場合、またはファイル「-」が指定されている場合、grepは標準入力を検索します。
    したがって、このコマンドの出力をgrepへの入力として渡すことで、/ proc / cpuinfoの出力を解析するようなパイプラインで使用でき、検索を実行できます。
    拝啓

  2.   アナ

    とても良い投稿です。
    あなたはそれを非常によく説明し、あなたはその要点に直行します。