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 ファイルにファイルの内容を含める方法の概要

フォーラムでは、ネットユーザーから「HTML ファイル内の別の HTML ファイルの内容を読み取るこ...

Element UI を使用してページにページング ナビゲーション バーを追加する方法

必要ページング バーを追加します。これにより、ページにジャンプしたり、ページ番号に従って特定のページ...

Dockerfile に基づいて Tomcat イメージを構築する方法

Dockerfile は Docker イメージを構築するために使用されるファイルです。コマンドパラ...

Docker、Nginx、Jenkins をベースにした自動フロントエンド デプロイメント

目次事前準備展開ターゲットDocker環境構築クラウドサーバーに接続Docker環境をインストールす...

MySQL 5.7.17 最新インストールチュートリアル(画像とテキスト付き)

mysql-5.7.17-winx64 は MySQL の最新バージョンです。インストールは無料で...

Windows Server 2016 に MySQL 5.7.19 の解凍バージョンをインストールするための詳細なチュートリアル

MySQL 5.7.19 winx64 解凍版のインストールチュートリアルを収録しています。具体的な...

Reactは動的ポップアップウィンドウコンポーネントを実装します

UI コンポーネントを作成するときに、アニメーションを考慮しなければ、アニメーションを実現するのは非...

TypeScript 3.7 で注目すべき 3 つの新機能について簡単に説明します。

目次序文オプションの連鎖ヌル結合呼び出されていない関数のチェック他の序文TypeScript 3.7...

高度な JavaScript フロントエンド開発でよく使用されるいくつかの API の例の詳細な説明

目次ミューテーションオブザーバーAPI特徴インターセクションオブザーバーAPI例えば画像の遅延読み込...

数千万データを持つMySQLテーブルを最適化する実践記録

序文まずここで説明させてください。インターネット上では、Alibaba では 500 万のデータを異...

自己終了XHTMLタグを書くときに注意すべきこと

XHTMLの img タグは、次のように記述する必要があります: <img alt="...

Vue+Elementでページング効果を実現

この記事の例では、ページング効果を実現するためのvue+Elementの具体的なコードを参考までに共...

docker で nginx+php+mysql を設定する方法

まず、方法を理解します。 docker exec を使用して Docker コンテナに入るDocke...

入力ボックスのプレースホルダーテキストのデフォルトの色を変更する -webkit-input-placeholder メソッド

HTML5 では、入力用のネイティブ プレースホルダー属性が追加されており、これは高度なブラウザでサ...

グローバルトーストコンポーネントをカプセル化するVueの完全な例

目次序文1. vue-cliを使う1. Toastコンポーネントを定義する2. main.jsで設定...