GNU/Linux >> Linux の 問題 >  >> Linux

初心者向けの例を含むGrepコマンドチュートリアル

このチュートリアルでは、「grep」について学習します。 指図。 GrepはGの略です ローブr egular e xpression p リント。名前が示すように、Grepは正規表現を含むテキストファイルを検索するために使用されます (まもなく正規表現 )。指定されたパターンに一致する行をテキストファイルに出力します。ファイルが指定されていない場合、grepは現在のディレクトリ内のファイルで指定されたパターンを再帰的に検索します。 Grepには、 egrepという2つのバリエーションがあります。 およびfgrep 。これらのバリアントは非推奨ですが、下位互換性のために提供されています。 「grep-E」と「grep-F」を使用する代わりに、それぞれ「egrp」と「fgrep」を使用できます。面倒なことはせずに、始めましょう。

Grepコマンドの例

file.txtという名前のファイルがあります いくつかのランダムな単語で。 file.txtを見てみましょう:

$ cat file.txt
ostechnix
Ostechnix
o$technix
linux
linus
unix
technology
hello world
HELLO world

検索を開始するには、grepに続けて、探しているものと探している場所を入力します。たとえば、文字列 "nix"を探します。 file.txt内。そうするために、私は実行します:

$ grep nix file.txt

サンプル出力:

ostechnix
Ostechnix
o$technix
unix

上記の出力でわかるように、一致するパターン「nix」を含む2つの単語が得られました。検索文字列に2つの単語が含まれている場合は、以下のように一重引用符で囲んでください。

$ grep 'hello world' file.txt 
hello world

-nを使用することもできます 出力に行番号を表示するフラグ:

$ grep -n nix file.txt

サンプル出力:

1:ostechnix
2:Ostechnix
3:o$technix
6:unix

これは、非常に長いコードで作業している場合に役立ちます。

grepでは大文字と小文字が区別されることに注意してください 。たとえば、 "os"を検索する場合 、大文字を含む行、つまりOsは表示されません。

次の例を確認してください。

$ grep os file.txt 
ostechnix

しかし、file.txtに「Ostechnix」という名前の別の単語がありますが、grepはそれをリストしていません。

ただし、大文字と小文字を区別しないようにする場合は、 "-i"を使用できます。 以下のようなフラグ。

$ grep -i os file.txt 
ostechnix
Ostechn1x
$ grep -i 'hello world' file.txt 
hello world
HELLO world

さて、grepは大文字小文字を気にせず、結果に大文字と小文字の両方を含む単語を取得しました。

コマンドの出力をgrepにパイプすることもできます。次の例を見てください。

$ cat file.txt | grep os
ostechnix

今、私たちが持っているものを見てください。 file.txtの出力はgrepにパイプ処理され、file.txtに「os」という文字を含む単語が表示されます。

grepではいくつかの特殊文字や正規表現を使用することもできます。

  • ^ -行の先頭で検索します。
  • $ -行末を検索します。
  • -任意の文字を検索します。

これらの特殊文字をどこでどのように使用するかを理解できるように、例を示しましょう。

すでにご存知のとおり、 "tech"という文字列を含む単語を検索できます 以下のように。

$ grep tech file.txt
ostechnix
Ostechnix
o$technix
technology

しかし、「tech」という単語で始まる行だけを検索したい場合はどうでしょうか。文字列を含むすべての単語を表示するのではなく、先頭に文字列「tech」が含まれる単語のみを表示します。それも可能です。ここで特殊文字が役に立ちます。

ファイルの行頭のパターン「tech」に一致する単語を検索するには、次のコマンドを実行します。

$ grep ^tech file.txt
technology

同様に、 "x" など、特定の文字で終わる単語を検索できます。 、以下のように。

$ grep x$ file.txt
ostechnix
Ostechnix
o$technix
linux
unix

また、を使用して任意の文字を含む単語を見つけることができます。 (ドット)。

たとえば、 "n"の単語を検索してみましょう。 ファイル内。

$ grep .n file.txt
ostechnix
Ostechnix
o$technix
linux
linus
unix
technology

これで、grepの使用法の基本を理解できたはずです。先に進んで、他の2つのバリアント、つまり egrepについて学びましょう。 およびfgrep

Egrepコマンドの例

egrep eの略です xtended grep "grep -E"に似ています 指図。 grepが行うすべてのことを行います。ただし、通常のgrepコマンドがそのまま使用するよりも、複雑な正規表現を使用するなど、いくつかの追加機能を提供します。

たとえば、 "l"で始まる単語を検索できます。 または"o"

行頭の単語を検索するためにカレット記号(^)を使用することを忘れないでください。したがって、上記のクエリに対するコマンドは次のようになります。

$ egrep '^(l|o)' file.txt
ostechnix
o$technix
linux
linus

見る? 「l」または「o」で始まるすべての単語があります。通常のgrepコマンドではこれを実行できないことに注意してください。

同様に、「l」から「u」までの任意の文字範囲で始まる行を検索できます。つまり、l、m、n、o、p、q、r、s、t、およびuで始まる行を取得します。それ以外はすべて結果から除外されます。

$ egrep '^[l-u]' file.txt
ostechnix
o$technix
linux
linus
unix
technology

角かっこを使用したことに注意してください ([)は、単語の範囲を検索します。 grepでは大文字と小文字が区別されるため、指定された範囲で大文字で始まる行は検索されません。

大文字と小文字の両方で始まるすべての行を表示するには、次を使用します。

$ egrep '^[l-u]|[L-U]' file.txt

または、

$ egrep '^([l-u]|[L-U])' file.txt

サンプル出力:

ostechnix
Ostechnix
o$technix
linux
linus
unix
technology
HELLO world

見る?これで、文字範囲「l」から「u」(大文字または小文字)で始まる単語ができました。

Fgrepコマンドの例

fgrep fの略です ast grep "grep -F"に似ています 。 fgrepは正規表現や特殊文字を認識できません。 fgrepは、正規表現を評価する場合に使用できます。

たとえば、次のコマンドを使用して、 "x"で終わる単語を検索します。 。

$ grep x$ file.txt
ostechnix
Ostechnix
o$technix
linux
unix

次に、fgrepを使用して同じコマンドを実行します。

$ fgrep x$ file.txt

特殊文字を評価できなかったため、何も表示されません。

次に、別の例を見てみましょう。文字列"o$"に一致する単語を検索するには grepコマンドを使用すると、次のようになります。

$ grep o$ file.txt

しかし、何も得られません、なぜですか?上記のコマンドのように、ドル記号($)を使用して、「o」で終わる単語を検索するためです。 file.txtに「o」で終わる文字がなかったため、何も取得されません。

ここで、fgrepを使用して同じコマンドを実行します。

$ fgrep o$ file.txt 
o$technix

見る?ここでfgrepコマンドを使用します。ドル記号(もちろん特殊文字)を無視し、文字列「o$」を含む単語を表示します。

grepの詳細については、次のように入力してください。

$ grep --help

それはすべての可能なオプションを提供します。または、マニュアルページを参照してください。

$ man grep

推奨される読み物:

  • マニュアルページを効率的に使用する方法を学ぶ
grepの語源

Grepは、 Ken Thompsonによって一晩で作成されました。 、Unixを書いたのと同じ男。しかし、なぜ、そしてどのようにしてその名前が付けられたのでしょうか?教授ブライアンカーニハン このビデオでgrepの語源を説明しています。

そして、それがすべてです。 Grepは、徹底的に学ぶ必要のある重要なコマンドの1つです。

これで、grepとは何か、およびgrepを使用してGNU/Linuxでパターンが一致するテキストファイルを検索する方法がわかりました。また、Grepの名前の由来についても学びました。これがお役に立てば幸いです。


Linux
  1. Linuxは初心者向けのコマンドチュートリアルを展開します(例付き)

  2. 初心者向けのLinuxファクターコマンドチュートリアル(例付き)

  3. Linux yes初心者向けコマンドチュートリアル(例付き)

  1. 初心者向けの例を含むNumfmtコマンドチュートリアル

  2. 初心者向けの例を含むタイプコマンドチュートリアル

  3. 初心者向けの例を含むShufコマンドチュートリアル

  1. 初心者向けのLinuxdfコマンドチュートリアル(8例)

  2. 初心者向けのLinuxfgrepコマンドチュートリアル(例付き)

  3. 初心者向けのLinuxexprコマンドチュートリアル(例付き)