grepコマンドの使い方をまとめました。
grepコマンドはファイルの中の文字列を検索するコマンド
grepコマンドはファイルの中身を検索することができるコマンドです。
grepコマンド単体の実行もしくはcat,moreと一緒に使うという2通りの使い方がある
grepコマンドはgrepコマンドを単体で実行する使い方と、cat、moreコマンドに|(ハイプ)をつけて使う2通りのやり方があります。
grepコマンドの後ろに検索したい文字列を記載してファイルを指定する
まず、grepコマンド単体での使い方を紹介します。
# grep root /etc/passwd
上記のように、grepコマンドの後ろに検索したい文字列を指定してその後ろに検索をかけるファイルを書きます。以下はRHEL9.5での実行結果です。
[root@localhost ~]# grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
| grepをcatコマンド、moreコマンドの後ろにつける
catコマンドはファイルの中身を表示することができるコマンドです。
cat <ファイルパス> | grep <検索したい文字列>
moreコマンドはcatコマンドと同様にファイルの中身を表示するコマンドですが、catコマンドは一斉にファイルの中身をすべて表示するのに対してmoreコマンドはすこしずつファイルの中身を表示します。
moreコマンドにgrepコマンドを同時に実行してもcatコマンド同様にファイルの中身から文字列を検索できます。
more <ファイルパス> | grep <検索したい文字列>
“”でくくることで空白を含む文字を検索する
空白が含まれる文字は””でくくることで検索が可能です。空白以外にも“”でくくらないと検索できない文字もあります。
cat <ファイルパス> | grep "<検索したい文字列>"
more <ファイルパス> | grep "<検索したい文字列>"
man grepでgrepコマンドのマニュアルを参照する
RHEL9など、使用しているLinuxで以下のコマンドを実行することでgrepコマンドのマニュアルを参照します。
man grep
grepコマンドのオプション
grepコマンドのオプションを一部紹介します。grepコマンドのより詳細なオプションは前述のmanコマンドから確認ください。
-i | 大文字と小文字を区別せずに検索する |
-v | 指定した文字列に一致しない行を表示する |
-o | 検索結果に一致した箇所だけを表示する |
-n | 検索結果に行番号を併せて表示する |
-x | 行全体が指定した文字列と完全一致するものを検索する |
-h | 検索結果にファイル名を表示しない |
-H | 検索結果にファイル名を併せて表示する |
-q | 検索結果を表示しない(grepの処理だけを行う、スクリプト用のオプション) |
-l | 一致するものが含まれているファイルのファイル名のみ表示する |
-L | 一致するものが含まれていないファイルのファイル名のみ表示する |
-r | ディレクトリを指定して、そのディレクトリ内のファイルを対象にしてした文字列を検索する |
-R | シンボリックリンクも含めてディレクトリ配下のファイルの文字列を検索する |