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

LinuxでGrepコマンドを使用する15の例

Grep(Global Regular Expression Print)は、一致するパターンを見つけるための非常に便利なLinuxコマンドです。ファイルやディレクトリを調べたり、コマンドからの入力を読み取ったりすることもできます。正規表現または正規表現で検索し、指定されたパターンに一致するファイルから行を出力します。

この投稿では、LinuxでGrepコマンドを使用する方法を見ていきます。ここで説明するコマンドは、Ubuntu20.04でテストされています。同じGrepコマンドは、Debian、Mint、Fedora、およびCentOSでも機能します。

grepコマンドのインストール

Ubuntu 20.04 LTSを含むほとんどのLinuxディストリビューションには、grepがインストールされています。システムにGrepがインストールされていない場合は、ターミナルで次のコマンドを使用してインストールできます。

$ Sudo apt-get install grep

Grepコマンド構文

Grepコマンドの基本的な構文は次のとおりです。

$ grep [options] PATTERN [FILE...]

Grepコマンドの使用

ファイル内の単語の検索

Grepを使用すると、特定のファイル内の任意の単語を検索できます。構文は次のようになります:

$ grep <word> <filename>

たとえば、次のコマンドは、ファイル「Donuts.txt」で「Donuts」という単語を検索します。

$ grep Donuts Donuts.txt

複数のファイルで単語を検索する

複数のファイルで特定の単語を検索することもできます。

$ grep <word> <filename1> < filename2>

たとえば、次のコマンドは、「Donuts.txt」と「cakes.txt」の両方で「Donuts」という単語を検索します。

$ grep Donuts Donuts.txt cakes.txt

ケースを無視する

Grepはデフォルトで大文字と小文字を区別する検索を実行します。これは、「ドーナツ」と「ドーナツ」の扱いが異なることを意味します。上記のコマンドを「ドーナツ」で再度実行すると、今回は出力が表示されません。

$ grep donuts Donuts.txt

ケースを無視するには、「 -i」を追加する必要があります 」を次のようにコマンドに追加します:

$ grep –i <word> <filename>

ディレクトリ内の拡張子でファイルを検索する

特定のディレクトリにあるファイルを拡張子で見つけることもできます。これを行うには、次の構文を使用します。

$ ls ~/<directory> | grep .<file type>

たとえば、「Downloads」フォルダ内のすべての「.jpeg」ファイルを検索するには、コマンドは次のようになります。

$ ls ~/Downloads | grep .jpeg

パターンに一致しない線を印刷する

Grepでは、「 -v 」を追加して、パターンに一致しない行を印刷することもできます。 」をコマンドに追加します。これを行うには、次の構文を使用します。

$ grep -v <word> <filename>

たとえば、次のコマンドは、「ドーナツ」という単語を含む行を除くすべての行を出力します。

一致する単語のみを印刷する

デフォルトでは、grepはパターンを含む行全体を出力します。一致する単語だけを印刷するには、「 -o」を追加します 」をコマンドに追加します。

$ grep -o <word> <filename>

たとえば、次のコマンドは、ファイル「Donuts.txt」の行全体を印刷するのではなく、「Donuts」という単語のみを印刷します。

一致するパターンと行の行番号を印刷する

デフォルトでは、grepはパターンを含む行全体を印刷します。行番号と一致する単語を含む行の両方を印刷するには、「 -n」を追加します 」をコマンドに追加します。

$ grep -n <word> <filename>

たとえば、次のコマンドは、行番号と「ドーナツ」という単語を含む行の両方を出力します。

$ grep -n Donuts Donuts.txt

パターンに一致するファイル名を印刷する

パターンに一致する現在のディレクトリ内のすべてのファイルを印刷するには、次の構文を使用します。

$ grep -l “<word>” *

たとえば、次のコマンドは、「Hello」という単語を含むすべてのファイルを出力します。

$ grep -l “Hello” *

一致する単語全体を印刷する

デフォルトでは、grepは、単語の一部であっても、パターンに一致するすべての単語を出力します。下の画像を見てください。

do」という文字列を検索しました 」と表示され、「 do」を含むすべての行が表示されます。 」。完全に一致させるには、「 -w」を追加します 」をコマンドに追加します。

$ grep –w <word> <filename>

たとえば、「 do」という正確な単語を検索するには Donuts.txtファイルの「」コマンドは次のようになります。

$ grep -w do Donuts.txt

ご覧のとおり、「 do」という正確な単語を含む行のみが印刷されるようになりました。 」。

特定の単語で始まる一致行

特定の単語で始まる行を印刷するには、「 ^」を追加します 」をコマンドに追加します。

$ grep ^<word> <filename>

たとえば、次のコマンドは、「 Th」で始まるすべての行を出力します。 」。

$ grep ^Th Donuts.txt

パターンで終わる一致する線

特定のパターンで終わる行を印刷するには、「 $」を追加します 」をコマンドに追加します。

$ grep <word>$ <filename>

たとえば、次のコマンドは、「 t」で終わるすべての行を出力します。 」。

$ grep t$ Donuts.txt

特定の文字を含む一致する行

1文字または複数文字が含まれる行を検索する場合は、次の構文を使用します。

$ grep “[<letters>]” <filename>

たとえば、次のコマンドは、「a」から「f」までの文字を含むすべての行を出力します。

$ grep “[a-f]” Donuts.txt

再帰検索

ディレクトリおよびサブディレクトリ内のすべてのファイルで特定のパターンまたは単語を検索するには、次を使用します。

$ grep -R <word> <path>

たとえば、次のコマンドは、Documentsディレクトリに「Hello」という単語を含むすべてのファイルを一覧表示します。以下の出力では、一致する単語とともにファイルパスを確認できます。

$ grep -R “Hello” /home/maryam/Documents

一致した単語の前後に特定の行を印刷する

デフォルトでは、Grepは特定のパターンに一致する行のみを印刷します。 -Aを使用 Grepのオプションでは、一致した単語の前後にいくつかの行を含めることもできます。

試合後の線の印刷

Nを含む一致する単語を含む行を印刷するには 試合後の行数:

$ grep -A <N> <word> <filename>

たとえば、次のコマンドは、「hell」という単語を含む行とその後ろの1行を出力します。

$ grep -A 1 hell Donuts.txt

試合前に線を印刷する

Nを含む一致する単語を含む行を印刷するには 試合前の行数:

$ grep -B <N> <word> <filename>

たとえば、次のコマンドは、「hell」という単語を含む行とその前の1行を出力します。

$ grep -B 1 hell Donuts.txt

試合の前後に線を印刷する

Nを含む一致する単語を含む行を印刷するには 試合の前後の行数:

$ grep -C <N> <word> <filename>

たとえば、次のコマンドは、「hell」という単語を含む行とその前後の1行を出力します。

$ grep -C 1 hell Donuts.txt

一致数のカウント

-cを使用する grepのオプションを使用すると、特定のパターンに一致する行を数えることができます。一致する単語の数ではなく、行数にのみ一致することを忘れないでください。

$ grep -c <word> <filename>

たとえば、次のコマンドは、「ドーナツ」という単語を含む行数を出力します。

$ grep -c Donuts Donuts.txt

ファイル「Donuts.txt」には4つの「Donuts」が含まれていますが、-cはカウントを3としてしか出力していないことに注意してください。これは、一致数ではなく行数をカウントするためです。

grepの詳細については、次のコマンドを使用してください。

$ grep --help

または、以下のコマンドを使用してマニュアルページにアクセスします。

$ man grep

これにより、Grepのマニュアルページに移動します。

これですべてです。この投稿では、Linuxでのgrepコマンドの基本的な構文と使用法について説明しました。また、その有用性を拡張するために、いくつかのコマンドラインオプションを実行しました。 LinuxでのGrepコマンドのその他の使用法について、私たちが見逃していることを知っている場合は、以下のコメントでそれらについて知りたいと思います。

この関連記事を調べて、Linuxでファイルとディレクトリを見つける方法を見つけてください。


Ubuntu
  1. 5 実用的な Linux fuser コマンドの例

  2. 8 Linux TR コマンドの例

  3. Linux での dmsetup コマンドの使用例

  1. Linux での rm コマンドの例

  2. Linux での ps コマンドの例

  3. w Linux でのコマンド例

  1. Linux での sa コマンドの例

  2. Linux での ac コマンドの例

  3. Linux での df コマンドの例