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

「grep」コマンドをうまく活用する方法

LinuxおよびUNIXシステムには、「grep」と呼ばれるシェルコマンドが付属しています。これは、ファイルまたはディレクトリ全体で、指定されたテキストまたはパターンを検索するだけです。最も一般的な使用法は、プレーンテキストまたは正規表現の形式である可能性のあるパターンの出現をファイルですばやく検索することです。

ここで使用されるパターンは、正規表現ではなく単純なテキストになります。この記事では、テキストファイルで1つ以上のパターンを検索するときにgrepを使用する方法を説明します。検索から特定のパターンを含む行を削除する方法、およびより高度なフィルタリングのためにパイプを使用して複数のgrepコマンドを実行する方法。

「grep」の基本的な概要

次のコマンドの端末出力を確認してください:

/etc$ grep unix group
/etc$ grep -n unix group
/etc$ grep -w unix group
/etc$ grep -r -s unix . 

このスクリーンショットでは、grepを使用して/ etc/groupファイルで「unix」という単語を検索しています。結果として、unix_allsort(このコンピューターのユーザー名)のすべてのオカレンスを返します。 2番目のコマンドも同じことを行いましたが、-nパラメーターを使用すると、ファイル内でパターンが見つかった行が表示されます。

3番目のコマンドは、「-w」パラメータとは少し異なります。このパラメータは、grepに、単純なテキストではなく単語全体に一致するように指示します。グループファイルには単語全体に「unix」が含まれていなかったため、出力はありませんでした。

4番目のコマンドは異なります。最初のパラメータ「-r」は、ディレクトリを再帰的に検索するようにgrepに指示します。この場合、ディレクトリは現在のディレクトリ(/ etc)であり、「。」で示されます。次のパラメータ「-s」は、出力をエラーで汚染しないように、「PermissionDenied」エラーなどのエラーが出力に報告されないようにgrepに指示します。したがって、4番目のgrepコマンドは、/ etcおよびそのサブディレクトリ内のすべてのファイルで発生するすべての「unix」を一覧表示します。ここで、エラーは単に無視されます。

複数のパターン

複数のパターンを検索するには、ファイルまたはディレクトリで検索するパターンのリストを1行ずつ含むテキストファイルを作成し、-fパラメータを使用してパターンを含むファイルをロードします。$ grep -f 〜/ groups.txt / etc / group

このファイルには、検索する次のパターンが含まれています:

unix_allsort
video
sudo

これらのパターンの少なくとも1つを含むすべての行は、端末出力に表示されます。

出力のリダイレクト

大きなファイル、または複数のファイルでgrepを使用すると、大量の出力が生成される可能性があることに注意してください。したがって、出力全体をスクロールできるように、出力を「less」コマンドにパイプすることをお勧めします。 $ grep -r -n -f filter.txt resources / js |または、出力をテキストファイルにリダイレクトして、後で表示します。 $ grep -r -n -f filter.txt resources / js>〜/ result.txt

もう少し高度なもの

パターンを検索したり、不要な出力を除外したりするために、パイプで時々使用するトリックがあります。 「less」で表示されるgrepからのパイプ出力は例でした。

カーネルログ(/var/log/kern.log)を使用した2つの例。この写真を見てください:

私が行ったことは、grepを使用して、単語「pci」全体を含むすべての行を一覧表示し(-wパラメーターを使用して単語全体にのみ一致させる)、出力を別のgrepコマンドにパイプして、不要なパターンをフィルターで除外します。出力で確認します。

私が除外していたパターンは、「ohci-pci」と「ehci-pci」でした。

その写真では、最初に不要なパターンを含む行を除外してから、出力で必要なものを検索しました。また、フィルターで除外する別のパターン「pci =nocrs」を追加しました。grepにはここで説明する機能よりも多くの機能があるため、grepを定期的に使用する場合は、時間をかけて何ができるか、どのように改善するかを調べてください。これを使って。また、PDFファイルを検索するためにpdfgrepをチェックしてください。

結論

grepのようなツールは、非常に簡単に特定のパターンの多数のテキストファイル、スクリプト、特にログを調べるのに不可欠なことは言うまでもなく、非常に便利です。 1つのファイルまたは複数のファイルで1つまたは複数のパターンを検索するか、それらを使用して、それらのパターンを含むファイルから行を除外できます。

パイプを使用して、より複雑にすることもできます。 grepを使用した検索とフィルタリング。この優れたコマンド、特にその高度な機能のいくつかについて詳しく知ることは、時間をかける価値があります。


Linux
  1. Grepコマンドを使用してファイル内のテキストを検索する方法

  2. LinuxでSuコマンドを使用する方法

  3. grep コマンドが一致する行全体を返すようにする方法

  1. Linuxgrepコマンドの使用方法

  2. WindowsでTelnetを使用する方法

  3. mkdirコマンドを使用してLinuxディレクトリを作成または作成する方法

  1. Linux/UNIXでgrepコマンドを使用する方法

  2. LinuxでDisownコマンドを使用する方法

  3. LinuxSSコマンドの使用方法