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

推薦する

虫眼鏡効果を実現するJavaScript

この記事では、虫眼鏡効果を実現するためのJavaScriptの具体的なコードを参考までに紹介します。...

ウェブ画像形式としてPNG、JPG、GIFを選択して使用する方法

では、GIF、PNG、JPG のどの形式を候補形式として選択すればよいのでしょうか。また、どの画像形...

ウェブデザイン研究における XHTML の応用の概要

<br />一般的に、「標準的な Web ページ」のファイル構成は XHTML CSS ...

HTML でフォームを中央揃えにする

以前、写真が与えられ、その写真スタイルに基づいてフォームを作成するという課題に遭遇しました。しかし、...

Mysql の mysql.user ユーザー テーブルの詳細な説明

MySQL は、異なるユーザーに異なる権限を割り当てることができるマルチユーザー管理データベースであ...

CentOS 7 に PHP5 用の suPHP をインストールする方法 (Peng Ge)

デフォルトでは、CentOS 7 上の PHP は apache または nobody として実行さ...

Linux mysql-5.6 でルート パスワードをリセットする方法

1. MySQL サービスが起動しているかどうかを確認します。起動している場合は、MySQL サービ...

JavaScript のフラット配列をツリー構造に変換する例

目次バックグラウンドで10,000個のデータが失われた再帰法非再帰的方法要約するバックグラウンドで1...

JavaScriptページングコンポーネントの使い方の詳細な説明

ページネーションコンポーネントはWeb開発でよく使われるコンポーネントです。ページネーション機能を実...

dockerネットワーク双方向接続の詳細な説明

Dockerネットワークを見るdocker ネットワーク ls [root@master ~]# d...

ネイティブJavaScriptカルーセル実装方法

この記事では、JavaScriptカルーセルの実装方法を参考までに紹介します。具体的な内容は次のとお...

MySQL マルチマスターと 1 スレーブのデータバックアップ方法のチュートリアル

概要いずれかのデータベースに対する操作は他のデータベースに自動的に適用され、2 つのデータベースのデ...

iframe を通じて DOM 要素のサイズ変更を監視する

開発プロセス中によく発生する問題は、div のサイズ変更をどのように監視するかということです。たとえ...

React における useEffect と useLayoutEffect の違い

目次前提条件使用効果コミット前ミューテーション効果コミットミューテーション効果コミットレイアウト効果...

MySQL の自動インクリメント主キーが連続していないのはなぜですか?

目次1. はじめに2. 自己増分ストレージの説明3つの自己付加価値修正メカニズム4. 自己評価を修正...