English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Linux grepコマンド

Linux コマンド全書

Linux grepコマンドは、ファイル内に条件に一致する文字列を検索するために使用されます。

grepコマンドは、指定されたテンプレート形式を含む内容を持つファイルを検索するために使用されます。指定されたファイル名が無いか、または指定されたファイル名が -、それではgrepコマンドは標準入力デバイスからデータを読み取ります。

構文

grep [-abcEFGhHilLnqrsvVwxy][-A<表示行数>][-B<表示列数>][-C<表示列数>][-d<アクション>][-e<テンプレート形式>][-f<テンプレートファイル>][--help][テンプレート形式][ファイルまたはディレクトリ...]

パラメータ

  • -aまたは  --text バイナリデータを無視しない。

  • -A<表示行数>または   --after-context=<表示行数> 表示形式に合った列の他に、その行の後の内容も表示する。

  • -bまたは --byte-offset 表示形式に合った行の前に、その行の最初の文字の番号を表示する。

  • -B<表示行数>または  --before-context=<表示行数> 表示形式に合った行の他に、その行の前の内容も表示する。

  • -cまたは  --count 表示形式に合った行の列数を計算する。

  • -C<表示行数>または  --context=<表示行数>または-<表示行数> 表示形式に合った行の他に、その行の前後の内容も表示する。

  • -d <アクション>または    --directories=<アクション> 指定されたものがディレクトリではなくファイルである場合、このオプションを使用する必要があります。それが指定されない場合、grepコマンドはメッセージを返し、動作を停止します。

  • -e<テンプレート形式>または --regexp=<テンプレート形式> 指定された文字列をファイル内容の検索形式として使用する。

  • -または  --extended-regexp 表示形式を拡張正規表現として使用する。

  • -f<ルールファイル>または --file=<ルールファイル> 指定されたルールファイルが1つまたは複数のルール形式を含む指定されたルールファイルを指定する。grepは、ルール条件に一致するファイル内容を検索します。各行に1つのルール形式があります。

  • -または --fixed-regexp 表示形式を固定文字列のリストとして使用する。

  • -または --basic-regexp 表示形式を通常の記法として使用する。

  • -または --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 : このパラメータの効果は指定"-"recursive"パラメータと同じです。

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

  • -v または --invert-match : マッチングテキストを含まないすべての行を表示します。

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

  • -w または  --word-regexp : 全字が一致する列を表示します。

  • -x    --line-regexp : 全列が一致する列を表示します。

  • -y : このパラメータの効果は指定"-i"パラメータと同じです。

Linux コマンド全書

オンラインサンプル

1、現在のディレクトリ内に「file」という名前のファイルが含まれるファイル内に「test」文字列を検索し、その文字列の行を印刷します。この場合、以下のコマンドを使用できます:

grep test *file

以下に結果を示します:

$ grep test test* # 「test」接頭辞を持つファイルが「test」文字列を含むファイルを検索します  
testfile1:これはLinuxのtestfile!# testfileを一覧表示1 に含まれる「test」文字の行  
testfile_2:これはlinuxのtestfile!# testfile_を一覧表示2 に含まれる「test」文字の行  
testfile_2:Linux test # testfile_を一覧表示2 に含まれる「test」文字の行

2、递归的に条件を満たすファイルを検索します。例えば、指定されたディレクトリ/etc/acpi 及びそのサブディレクトリ(サブディレクトリがある場合)のすべてのファイル内に「update」文字列を含むファイル、その文字列が含まれる行を印刷します。使用するコマンドは以下の通りです:

grep -r update /etc/acpi

以下の結果が出力されます:

$ grep -r update /etc/acpi # 递归的に「etc」を検索します/acpi  
# 下に「update」を含むファイル  
/etc/acpi/ac.d/85-anacron.sh:# (slocate updatedb などのことが多くのIOを引き起こします。)  
Rather than  
/etc/acpi/resume.d/85-anacron.sh:# ( Things like the slocate updatedb cause a lot of  
IO.)  Rather than  
/etc/acpi/events/thinkpad-cmos:action=/usr/sbin/thinkpad-keys--update

3、逆検索。前の例では、条件に一致する行を検索および表示しましたが、"-v"パラメータは、条件に一致しない行の内容を表示できます。

ファイル名に 'test' が含まれるファイルの中で 'test' が含まれない行を検索する場合、以下のコマンドを使用します:

grep -v test *test*

以下に結果を示します:

$ grep-v test* #ファイル名に 'test' が含まれるファイルの中で 'test' が含まれない行を検索する  
testfile1:helLinux!  
testfile1:Linis a free Unix-type operating system.  
testfile1:Lin  
testfile_1:HELLO LINUX!  
testfile_1:LINUX IS A FREE UNIX-TYPE OPTERATING SYSTEM.  
testfile_1:THIS IS A LINUX TESTFILE!  
testfile_2:HELLO LINUX!  
testfile_2:Linux は無料のユニックスです。-オペレーティング システムの種類。