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でシューティングゲームを作る詳しい解説

推薦する

HTML のメタタグの簡単な比較

メタ タグは、ファイル情報を定義し、検索エンジンによる検索を容易にするために Web ページ ファイ...

MySQL コマンドライン操作中のエンコードの問題の詳細な説明

1. MySQLデータベースのエンコーディングを確認する mysql -u ユーザー名 -p パスワ...

Windows 10 での mysql-8.0.17-winx64 のインストール方法

1.公式サイトからダウンロードして解凍する参考: ダウンロード後、zip 圧縮ファイル (mysql...

インタビューの質問: ホーリー グレイル レイアウトとダブル ウィング レイアウトの違い

序文今日は、聖杯レイアウトとダブルウィングレイアウト、そしてそれらの違いについてお話しします。この2...

JSが絵柄デジタル時計を実現

この記事の例では、画像デジタル時計を実現するためのJSの具体的なコードを参考までに共有しています。具...

Centos7.4 環境に lamp-php7.0 をインストールするチュートリアル

この記事では、Centos7.4 環境に lamp-php7.0 をインストールする方法について説明...

JavaScriptイベント実行メカニズムの深い理解

目次序文ブラウザJS非同期実行の原理ブラウザのイベントループ実行スタックとタスクキューマクロタスクと...

MySQL 最適化の概要 - クエリエントリの合計数

1. COUNT(*) と COUNT(COL) COUNT(*)は通常、主キーに対してインデックス...

擬似静的およびクライアント適応型 Nginx の設定方法

バックエンドは thinkphp3.2.3 フレームワークを使用します。他の言語を使用している場合は...

Vue+webrtc (Tencent Cloud) ライブブロードキャスト機能の実装実践

目次1. 生放送効果2. ライブストリーミングを開始する手順2.1 Tencent Web(高速ライ...

同じドメイン名を持つ Nginx プロキシのフロントエンドとバックエンドの分離プロジェクトの完全な手順

フロントエンド プロジェクトとバックエンド プロジェクトは分離されており、フロントエンドとバックエン...

Vue3.0+vite2は動的非同期コンポーネントの遅延読み込みを実装します

目次Viteプロジェクトを作成するコンポーネントの作成Viteプロジェクトを作成するパフォーマンスが...

NodeJSのモジュール性に関する詳細な説明

目次1. はじめに2. 本文2.1 モジュールとは何ですか? 2.2 解決2.3、require.r...

MySQLデータベース最適化技術の簡単な紹介

成熟したデータベース アーキテクチャは、最初から高可用性、高スケーラビリティなどの機能を備えて設計さ...

検索履歴を実装するjQueryプラグイン

毎日jQueryプラグイン - 検索履歴を作成するためのものです。参考までに、具体的な内容は次のとお...