機能説明: ファイル内の条件を満たす文字列を検索します。
構文: 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 または --regexp= ファイルのコンテンツを検索するためのテンプレート スタイルとして文字列を指定します。
-E または --extended-regexp テンプレート スタイルを拡張通常の表記法として使用します。
-f または --file= は、コンテンツに 1 つ以上のテンプレート スタイルが含まれるテンプレート ファイルを指定し、grep がテンプレート条件を満たすファイル コンテンツを検索できるようにします。 。
-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 テンプレート スタイルに一致する列を表示する前に、列の列番号をマークします。
-q または --quint または --silent は情報を表示しません。
-r または --recursive このパラメーターは、「-d recurse」パラメーターを指定するのと同じ効果があります。
-s または --no-messages エラー メッセージを表示しません。
-v または --revert-match 検索を逆にします。
-V または --version バージョン情報を表示します。
-w または --word-regexp 完全な単語に一致する列のみを表示します。
-x または --line-regexp すべての列に一致する列のみを表示します。
-y このパラメータは、「-i」パラメータを指定した場合と同じ効果があります。
--help オンライン ヘルプ。
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 '
'^': 一致した文字列が行の先頭にあることを意味します。
'$': 一致した文字列が行の末尾にあることを意味します。
コマンドラインパラメータに慣れていない場合は、次のことを試してください。 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 | アカウントを申請した交換留学生のリストを表示します
cat passwd | b.503' 電気工学科の全学年を一覧表示します...
grep '^.' myfile.txt ピリオドで始まるすべての行を一覧表示します
改行以外の文字に一致します。たとえば、「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' aawest が一致した場合、es はメモリに保存され、1 としてマークされ、任意の数の文字 (.*) が検索され、見つかった場合はその行が表示されます。 egrep や grep -E を使用する場合は、"" 記号でエスケープする必要はなく、「w(es)t.*1」と直接記述します。