Linux での grep コマンドの使い方の詳細な説明

Linux での grep コマンドの使い方の詳細な説明

Linux grep コマンド

Linux の grep コマンドは、ファイル内の条件を満たす文字列を検索するために使用されます。また、指定されたテンプレート スタイルを含むコンテンツを含むファイルを検索するためにも使用できます。正規表現検索を使用して、ファイル内の指定された文字列パターンを検索し、パターンに一致する部分文字列を含むファイル名を一覧表示し、文字列を含むテキスト行を出力できます。

grep の動作は次のとおりです。1 つ以上のファイル内で文字列パターンを検索します。テンプレートにスペースが含まれている場合は引用符で囲む必要があり、テンプレートの後のすべてがファイル名として扱われます。検索結果は、元のファイルの内容に影響を与えずに標準出力に送信されます。

基本的な構文:

grep [オプション] パターン [ファイル]

[options] の主なパラメータは次のとおりです。

-a または --text: バイナリデータを無視しません。

-A<表示行番号> または --after-context=<表示行番号>: テンプレート スタイルに一致する列を表示するだけでなく、その行の後の内容も表示します。

-b または --byte-offset: パターンに一致する行を表示する前に、行の最初の文字の番号をマークします。

-B<表示行番号> または --before-context=<表示行番号>: スタイルに一致する行を表示するだけでなく、その行の前の内容も表示します。

-c または --count: パターンに一致する列の数をカウントします。

-C<表示行番号> または --context=<表示行番号> または -<表示行番号>: スタイルに一致する行を表示するだけでなく、その行の前後のコンテンツも表示します。

-d <アクション> または --directories=<アクション>: ファイルの代わりに検索するディレクトリを指定する場合、このパラメータを使用する必要があります。そうしないと、grep コマンドは情報を報告し、アクションを停止します。

-e<テンプレート パターン> または --regexp=<テンプレート パターン>: ファイルの内容を検索するためのパターンとして文字列を指定します。

-E または --extended-regexp: 拡張正規表現パターンを使用します。

-f<rule file> または --file=<rule file>: 1 つ以上のルール パターンを含むルール ファイルを指定します。これにより、grep は 1 行に 1 つのルール パターンを使用して、ルール条件を満たすファイルの内容を検索できます。

-F または --fixed-regexp : パターンを固定文字列のリストとして扱います。

-G または --basic-regexp: パターンを通常の表記として使用します。

-h または --no-filename: パターンに一致する行を表示する前に、その行が属するファイル名を指定しません。

-H または --with-filename: パターンに一致する行を表示する前に、その行が属するファイルの名前を示します。

-i または --ignore-case: 文字の大文字と小文字の違いを無視します。

-l または --file-with-matches: 指定されたパターンに一致する内容を持つファイルの名前を一覧表示します。

-L または --files-without-match: 指定されたパターンと一致しない内容を持つファイルの名前を一覧表示します。

-n または --line-number: スタイルに一致する行を表示する前に、行の列番号をマークします。

-o または --only-matching: 一致する PATTERN 部分のみを表示します。

-q または --quiet または --silent: 情報を一切表示しません。

-r または --recursive: このパラメータの効果は、「-d recurse」パラメータを指定するのと同じです。

-s または --no-messages: エラー メッセージを表示しません。

-v または --revert-match: 一致するテキストが含まれていないすべての行を表示します。

-V または --version: バージョン情報を表示します。

-w または --word-regexp: 単語全体に一致する列のみを表示します。

-x --line-regexp : 指定された行の正規表現に完全に一致する列のみを表示します。

-y: このパラメータは、「-i」パラメータを指定するのと同じ効果があります。

-?: 一致する行の上と下の?を同時に表示します。たとえば、grep -2 pattern filename は、一致する行の上と下の 2 行を同時に表示します。

パターン正規表現の主なパラメータは次のとおりです。

\: 正規表現内の特殊文字の本来の意味を無視します。

^: 正規表現の行の先頭に一致します。

$: 正規表現の末尾に一致します。

\<: 正規表現に一致する行から開始します。

\>: 正規表現に一致する行の末尾まで。

[]: [A] などの 1 文字。A が要件を満たしていることを意味します。

[ - ]: [A-Z] などの範囲。A、B、C、Z がすべて要件を満たすことを意味します。

.: すべて単一文字。

*: 文字が含まれ、長さは 0 になります。

コード例:

例 1: 現在のディレクトリで、プレフィックスが「test」で文字列「test」を含むファイルを検索し、文字列を含む行を出力します。この場合、次のコマンドを使用できます。

grep テスト テスト*

出力:

testfile1: これは Linux テストファイルです。 # test という文字を含む testfile1 の行を一覧表示します。testfile_2: これは Linux テストファイルです。 # test という文字を含む testfile_2 の行を一覧表示します。testfile_2: Linux test # test という文字を含む testfile_2 の行を一覧表示します。

例 2: 逆検索。「-v」パラメータを使用すると、条件を満たさない行の内容を出力できます。ファイル名にtestが含まれるファイル内でtestを含まない行を探す

grep -v テスト *テスト*

出力:

テストファイル1: helLinux! 

testfile1:Lin は無料の Unix タイプのオペレーティング システムです。 

テストファイル1:Lin 

testfile_1:こんにちは、Linux! 

testfile_1:LINUX は無料の UNIX タイプのオペレーティングシステムです。 

testfile_1:これは Linux テストファイルです。 

testfile_2:こんにちは、Linux! 

testfile_2:Linux は、無料の Unix タイプのオペレーティングシステムです。

以下もご興味があるかもしれません:
  • Linux の grep コマンドと egrep コマンドの詳細な説明
  • Linux でタブと改行を一致させる Grep コマンド
  • Linuxはgrepを使用して複数の条件をフィルタリングし、grepの一般的なフィルタリングコマンドを使用します。
  • Linux で grep コマンドを使用してファイルの内容を取得する方法
  • Linux の一般的なコマンドと find と grep の違い
  • Linux テキスト フィルタリング grep 基本コマンドの紹介 (5)
  • Linux grepコマンドの詳細な説明
  • Linux の grep コマンドの詳細な理解
  • Linux での Grep コマンドの使用
  • Linux での grep コマンドの使い方の詳細な説明

<<:  Centos7 で yum を使用して Mysql5.7.19 をインストールする詳細な手順

>>:  CocosCreatorでシューティングゲームを作る詳しい解説

推薦する

MySQL 5.7.23 のインストールと設定方法のグラフィックチュートリアル

この記事では、参考として MySQL 5.7.23 のインストール チュートリアルを記録します。 1...

MySQLにおけるビューの作成(CREATE VIEW)と使用制限の詳しい説明

この記事では、例を使用して、MySQL ビューの作成 (CREATE VIEW) と使用上の制限につ...

W3C チュートリアル (10): W3C XQuery アクティビティ

XQuery は、XML ドキュメントからデータを抽出するための言語です。 XQuery は、XML...

MySQL の永続性とロールバックの原理を 1 つの記事で理解する

目次再実行ログディスクデータを直接更新するのではなく、最初にメモリデータを更新する必要があるのはなぜ...

Vue の共通 A​​PI と高度な API の概要

目次次のチェックミックスイン$強制更新設定、削除フィルター指令その他の単純な共通プロパティとメソッド...

MySQLでよく使われる演算子と関数の概要

まずデータ テーブルを作成しましょう。 使用テスト; テーブル「従業員」を作成します( emp_no...

Vue は PDF.js を統合して PDF プレビューを実装し、透かしを追加する手順を実行します。

目次成果を達成する利用可能なプラグインの紹介ニーズに応じてプラグインを選択するプラグインのインストー...

Vue で動的に追加されたルーティング ページの更新時に失敗する理由と解決策

目次問題の説明シナリオインターフェースリターンフロントエンドメニューの定義vuex のメソッド問題原...

Docker を使用してコンテナ内のルート パスワードを変更する方法

1. dockerfileを作成するときにsshパスワードを設定するには、次のコマンドを使用します。...

VMwareでCentOSがインターネットにアクセスできない問題を素早く解決

昨日、VMware に CentOS7 をインストールしました。Tomcat パッケージを転送するた...

MySQL Innodb インデックス メカニズムの詳細な紹介

1. インデックスとは何ですか?インデックスは、ストレージ エンジンがレコードをすばやく検索するため...

コマンドラインを使用してUbuntuのバージョンを検出する方法

方法1: lsb_releaseユーティリティを使用するlsb_release ユーティリティは、L...

写真のプレビューとアップロード機能を実現するhtml+css+js

はじめに: Web ページを作成するときに、画像をアップロードする必要がある場合がよくあります。画像...

Vue プロジェクトで Baidu Map API を使用する方法

目次1. Baidu Map Open Platformにアカウントを登録してログインする2. 必要...

MySQL コマンドラインでよく使われる 18 個のコマンド

日常的なウェブサイトの保守と管理では、多くの SQL ステートメントが使用されます。熟練して使用する...