検索
ホームページphp教程PHP开发Linuxパイプラインコマンドgrep

機能説明: ファイル内の条件を満たす文字列を検索します。

構文: grep [-abcEFGhHilLnqrsvVwxy][-A][-B][-C][-d][- e ;][-f][--help][テンプレートスタイル][ファイルまたはディレクトリ...]

補足: grepコマンドは、指定されたテンプレートスタイルファイルを含むファイルを検索するために使用されます。ファイルの内容が指定されたテンプレート スタイルと一致することが判明した場合、デフォルトの grep コマンドはテンプレート スタイルを含む列を表示します。ファイル名が指定されていない場合、または指定されたファイル名が「-」の場合、grep コマンドは標準入力デバイスからデータを読み取ります。

パラメータ:
-a または --text バイナリ データを無視しません。
-A または --after-context= テンプレート スタイルに準拠した列を表示し、その列の後のコンテンツを表示します。
-b または --byte-offset テンプレート スタイルに一致する列を表示する前に、列の最初の文字のビット番号をマークします。
-B または --before-context= テンプレート スタイルに準拠した列を表示するだけでなく、その列より前のコンテンツも表示されます。
-c または --count テンプレート スタイルに一致する列の数をカウントします。
-C または --context= または - テンプレート スタイルに準拠した列を表示するだけでなく、そのコラムの後。
-d または --directories= このパラメータは、検索するファイルではなくディレクトリを指定する場合に使用する必要があります。そうでない場合、grep コマンドは情報を報告し、アクションを停止します。
-e

Linux grep コマンドの使用法
grep コマンドを使用して、www.linuxso.com からテキスト ファイルを検索します

複数のテキスト ファイルで文字列を検索したい場合は、‘grep' コマンドを使用できます。 「grep」は、指定された文字列のテキストを検索します。
「/usr/src/linux/Documentation」ディレクトリで文字列「magic」を含むファイルを検索しているとします。
$ grep magic /usr/src/linux/Documentation/*
sysrq.txt:* 方法マジック SysRQ キーを有効にしますか?
sysrq.txt:* マジック SysRQ キーを使用するにはどうすればよいですか?

ファイル「sysrp.txt」にはこの文字列が含まれており、SysRQ の機能について説明しています。
デフォルトでは、「grep」は現在のディレクトリのみを検索します。このディレクトリの下に多くのサブディレクトリがある場合、「grep」は次のようにリストします:
grep: sound: ディレクトリです
これにより、「grep」の出力が読みにくくなる可能性があります。ここには 2 つの解決策があります:
サブディレクトリの検索を明示的に要求する: grep -r
またはサブディレクトリを無視する: grep -d Skip
もちろん、大量の出力が予想される場合は、「less」Read
$ にパイプすることもできます。 grep magic /usr/src/linux/Documentation/*
このようにすると、より便利に読むことができます。
注意すべき点は、ファイルのフィルタリング方法を提供する必要があることです (すべてのファイルを検索するには * を使用します)。忘れた場合、「grep」はプログラムが中断されるまで待機します。この問題が発生した場合は、 を押して再試行してください。
ここにいくつかの興味深いコマンドラインパラメータがあります:
grep -i パターンファイル: 大文字と小文字を区別せずに検索します。デフォルトでは大文字と小文字が区別されます。
grep -l パターン ファイル: 一致するファイル名のみがリストされます。
grep -L パターン ファイル: 一致しないファイル名がリストされます。
grep -w パターン ファイル: 文字列の一部ではなく、単語全体にのみ一致します。 (「magical」ではなく「magic」に一致するなど)、
grep -C 数値パターン ファイル: 一致するコンテキストは [number] 行をそれぞれ表示します、
grep pattern1 | pattern2 files: pattern1 または pattern2 に一致する行を表示します、
grep pattern1 ファイル | grep pattern2: pattern1 と pattern2 の両方に一致する行を表示します。
検索用の特別な記号もいくつかあります。
例:
grep man * は 'Batman'、'manic'、'man' などに一致します。
grep ' grep '' は 'man' のみに一致し、'Batman' や 'manic' などの他の文字列には一致しません。
'^': 一致した文字列が行の先頭にあることを意味します。
'$': 一致した文字列が行の末尾にあることを意味します。
コマンドラインパラメータに慣れていない場合は、次のことを試してください。 reXgrep などのグラフィカル インターフェイスの 'grep'。このソフトウェアは、AND、OR、NOT などの構文と美しいボタンを提供します:-)。より明確な出力が必要な場合は、 fungrep を試してください。

.grep 検索文字列
コマンド形式:
grep string filename
たとえば、M で始まるすべての行を検索するには、さまざまな方法があります。このとき、パターンの概念を導入する必要があります。いくつかの簡単なもの □例と説明:
^M M で始まる行、^ は始まりを意味します
M$ M で終わる行、$ は終わりを意味します
^[0-9] 数字で始まる行、[] 列挙可能文字
^[124ab] 1、2、4、a、または b で始まる行
^b.503 ピリオドは任意の文字を表します
* アスタリスクは 0 個以上の文字を表します (なしの場合もあります)
+ プラス記号 1 つ以上の文字を表します
. スラッシュは特別な意味を削除できます
cat passwd | grep ^b 大学のアカウント申請者のリストを表示します
cat passwd | アカウントを申請した交換留学生のリストを表示します
cat passwd | b.503' 電気工学科の全学年を一覧表示します...
grep '^.' myfile.txt ピリオドで始まるすべての行を一覧表示します

~~~~~~~~~~~ ~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~

1. grep の紹介

grep (グローバル検索正規表現(RE)と出力) the line、正規表現の包括的な検索と行の出力) は、正規表現を使用してテキストを検索し、一致する行を出力できる強力なテキスト検索ツールです。 Unix grep ファミリには、grep、egrep、および fgrep が含まれます。 egrep および fgrep コマンドは grep とわずかに異なります。 egrep は grep の拡張であり、より多くの re メタキャラクタをサポートします。 fgrep はすべての文字を単語として扱います。つまり、正規表現内のメタキャラクタは、もはや特別なものではありません。 Linux は GNU バージョンの grep を使用します。これはより強力で、-G、-E、および -F コマンド ライン オプションを使用して egrep および fgrep の機能を使用できます。

grep の仕組みは、1 つ以上のファイルで文字列テンプレートを検索することです。テンプレートにスペースが含まれる場合は引用符で囲む必要があり、テンプレートに続くすべての文字列はファイル名として扱われます。検索結果は、元のファイルの内容に影響を与えることなく画面に送信されます。

grep は、テンプレートの検索が成功した場合は 0、検索が失敗した場合は 1、検索中のファイルが存在しない場合は 2 であるステータス値を返すことで検索のステータスを示すため、シェル スクリプトで使用できます。 。これらの戻り値を使用して、自動化されたテキスト処理作業を実行できます。


2. grep 正規表現メタ文字セット (基本セット)

^

行の先頭をアンカーします。 例: '^grep' は grep で始まるすべての行と一致します。

$

アンカー行の終わり 例: 'grep$' は、grep で終わるすべての行に一致します。

改行以外の文字に一致します。たとえば、「gr.p」は gr の後に任意の文字が続き、次に p に一致します。

*

例: '*grep' は、1 つ以上のスペースの後に grep が続くすべての行に一致します。 .* を一緒に使用すると、任意の文字を表します。

[]

は、指定された範囲内の文字に一致します。たとえば、「[Gg]rep」は Grep と grep に一致します。

[^]

は、指定された範囲内にない文字と一致します。例: '[^A-FH-Z]rep' は、A-R と T-Z を含まない文字で始まり、その後に rep が続く行と一致します。 。

(..)

は、「(love)」などの一致する文字をマークします。love は 1 としてマークされます。

>」のように単語の先頭をアンカーします。

「grep>」のように単語の末尾をアンカーします。 grep で終わる単語を含む行と一致します。

x{m}

文字 x, m 回を繰り返します。例: '0{5}' は、5 つの o を含む行に一致します。

x{m,}

文字 x を少なくとも m 回繰り返します。例: 'o{5,}' は、少なくとも 5 つの o を含む行に一致します。

x{m,n}

文字 x を少なくとも m 回、最大で n 回繰り返します。たとえば、「o{5,10}」は 5 ~ 10 個の o を含む行に一致します。

w

は、リテラル文字と数字、つまり [A-Za-z0-9] に一致します。たとえば、「Gw*p」は、G の後に 0 個以上のリテラルまたは数字が続き、次に p に一致します。

W

w の反転形式は、ピリオド、ピリオドなどの 1 つ以上の非単語文字と一致します。

b

「bgrepb」などのワードロック文字は grep にのみ一致します。

3. egrep および grep に設定されたメタ文字拡張子 -E

+

は 1 つ以上の前の文字と一致します。例: '[a-z]+able' は、loveable、enable、disable など、1 つ以上の小文字の後にable が続く文字列と一致します。

?

0 個以上の前の文字と一致します。たとえば、「gr?p」は、gr の後に 1 文字または文字なし、その後に p が続く行に一致します。

a|b|c

は、a、b、または c に一致します。例: grep|sed は grep または sed

()

のグループ化記号と一致します。 love(able|rs)ov+ は loveable または恋人と一致し、1 つ以上の ov と一致します。

x{m},x{m,},x{m,n}

は、x{m},x{m,},x{m,n}

4と同じ機能を持ちます。

for さまざまな国で同じ文字エンコーディングを維持するために、POSIX (ポータブル オペレーティング システム インターフェイス) では、A-Za-z0-9 の別の書き方である [:alnum:] などの特殊な文字クラスを追加します。 [A-Za-z0-9] や [[:alnum:]] などの正規表現にするには、[] 記号で囲む必要があります。 fgrep を除き、Linux の grep は POSIX 文字クラスをサポートします。

[:alnum:]

英数字

[:alpha:]

リテラル文字

[:digit:]

数字

[:graph:]

空以外の文字(スペース以外) , 制御文字)

[: lower:]

小文字

[:cntrl:]

制御文字

[:print:]

空以外の文字(スペースを含む)

[:punct:]

句読点

[:space:]

すべての空白文字 (改行、スペース、タブ)

[:upper:]

大文字

[:xdigit:]

16 進数 (0-9、 a-f、A-F)

5. Grep コマンド オプション

-?

上下に一致する行を同時に表示しますか?次のような行: grep -2 pattern filename は、一致する行の上位行と下位行を同時に表示します。

-b, --byte-offset

一致する行を出力する前に、その行が位置するブロック番号を出力します。

-c, --count

一致する行数のみを出力し、一致する内容は表示しません。

-f File, --file=File

ファイルからテンプレートを抽出します。空のファイルにはテンプレートが 0 個含まれているため、一致するものはありません。

-h, --no-filename

複数のファイルを検索する場合、一致するファイル名のプレフィックスを表示しません。

-i, --ignore-case

大文字と小文字の違いを無視します。

-q, --quiet

表示をキャンセルし、終了ステータスのみを返します。 0 は、一致する行が見つかったことを意味します。

-l, --files-with-matches

テンプレートに一致するファイルのリストを出力します。

-L, --files-without-match

テンプレートに一致しないファイルのリストを出力します。

-n, --line-number

一致する行の前に行番号を出力します。

-s、--silent

存在しないファイルまたは読み取り不可能なファイルに関するエラー メッセージを表示しません。

-v, --revert-match

逆検索。一致しない行のみを表示します。

-w, --word-regexp

で囲まれた場合、式を単語として検索します。

-V, --version

ソフトウェアのバージョン情報を表示します。

6. 例

grep をうまく使うには、実際には正規表現をうまく書く必要があるため、ここでは例を使って grep のすべての機能を説明することはしません。正規表現の書き方を説明するために、いくつかの例を挙げます。 。

$ ls -l | grep '^a'

パイプラインを通じて ls -l の出力をフィルターし、a で始まる行のみを表示します。

$ grep 'test' d*

d で始まるファイル内の test を含む行をすべて表示します。

$ grep 'test' aa bb cc

aa、bb、cc ファイル内の test に一致する行を表示します。

$ grep '[a-z]{5}' aa

それぞれに少なくとも 5 つの連続した小文字を含む文字列を含むすべての行を表示します。

$ grep 'w(es)t.*1' aa

west が一致した場合、es はメモリに保存され、1 としてマークされ、任意の数の文字 (.*) が検索され、見つかった場合はその行が表示されます。 egrep や grep -E を使用する場合は、"" 記号でエスケープする必要はなく、「w(es)t.*1」と直接記述します。


声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター