【Linux】grepコマンドの使い方(オプションあり)

grepコマンドの使い方
この記事を読むと・・・
grepコマンドの基本的な使い方が理解できる
目次

【grepコマンド】どんな時に使う?

以下のようなことがしたい場合にgrepコマンドが役立ちます。

  • ファイル内の文字列を検索したい
  • ファイル内の文字列と一致しない箇所を確認したい

【grepコマンド】基本オプション

書式
grep [オプション]
検索パターン [ファイル名…]
                                              ※[ ]は省略可能です

基本的なオプションは以下の表の通りです。

オプション説明
オプションなし一致する行をすべて表示する
-A 数値一致した行とその後の(数値)行も一緒に表示する
-B 数値一致した行とその前の(数値)行も一緒に表示する
-C 数値一致した行とその前後(数値)行を表示する
-c一致する行の数を表示する
-E拡張正規表現使用して表示する
-e複数のパターンを指定して表示する
-i大文字小文字を区別せずに表示する
-n一致した行の行番号を表示する
-rディレクトリを再帰的に検索する
-v検索パターンに一致しない行を表示する
-w単語単位で一致を検索する

【sarコマンド】オプション使用例

OSのバージョンによって出力結果に若干の違いがある可能性があります。

オプションなし
(検索した文字列に一致する行をすべて表示する)

# cat test.txt
aaa
AAA
aaaAAA
bbb
BBB
bbbBBB
aaa bbb ccc
111
222
333
111222
111222333
13行目

# grep aaa test.txt
aaa
aaaAAA
aaa bbb ccc

「-A 数値」
(一致した行とその後の(数値)行も一緒に表示する)

# cat test.txt
aaa
AAA
aaaAAA
bbb
BBB
bbbBBB
aaa bbb ccc
111
222
333
111222
111222333
13行目

# grep -A 2 ccc test.txt
aaa bbb ccc
111
222

「-B 数値」
(一致した行とその前の(数値)行も一緒に表示する)

# cat test.txt
aaa
AAA
aaaAAA
bbb
BBB
bbbBBB
aaa bbb ccc
111
222
333
111222
111222333
13行目

# grep -B 2 ccc test.txt
BBB
bbbBBB
aaa bbb ccc

「-C 数値」
(一致した行とその前後(数値)行を表示する)

# cat test.txt
aaa
AAA
aaaAAA
bbb
BBB
bbbBBB
aaa bbb ccc
111
222
333
111222
111222333
13行目

# grep -C 2 ccc test.txt
BBB
bbbBBB
aaa bbb ccc
111
222

「-c」
(一致する行の数を表示する)

# cat test.txt
aaa
AAA
aaaAAA
bbb
BBB
bbbBBB
aaa bbb ccc
111
222
333
111222
111222333
13行目

# grep -c aaa test.txt
3

「-E」
(一致する行を拡張正規表現使用して表示する)

# cat test.txt
aaa
AAA
aaaAAA
bbb
BBB
bbbBBB
aaa bbb ccc
111
222
333
111222
111222333
13行目

# grep -E a+$ test.txt
aaa

「-e」
(一致する行を複数のパターンを指定して表示する)

# cat test.txt
aaa
AAA
aaaAAA
bbb
BBB
bbbBBB
aaa bbb ccc
111
222
333
111222
111222333
13行目

# grep -e aaa -e 111 test.txt
aaa
aaaAAA
aaa bbb ccc
111
111222
111222333

「-i」
(一致する行を大文字小文字を区別せずに表示する)

# cat test.txt
aaa
AAA
aaaAAA
bbb
BBB
bbbBBB
aaa bbb ccc
111
222
333
111222
111222333
13行目

# grep -i aaa test.txt
aaa
AAA
aaaAAA
aaa bbb ccc

「-n」
(一致した行の行番号を表示する)

# cat test.txt
aaa
AAA
aaaAAA
bbb
BBB
bbbBBB
aaa bbb ccc
111
222
333
111222
111222333
13行目

# grep -n 1 test.txt
8:111
11:111222
12:111222333
13:13行目

「-r」
(ディレクトリを再帰的に検索する)

# cat test.txt
aaa
AAA
aaaAAA
bbb
BBB
bbbBBB
aaa bbb ccc
111
222
333
111222
111222333
13行目

# grep -r aaa .
./test.txt:aaa
./test.txt:aaaAAA
./test.txt:aaa bbb ccc

「-v」
(検索パターンに一致しない行を表示する)

# cat test.txt
aaa
AAA
aaaAAA
bbb
BBB
bbbBBB
aaa bbb ccc
111
222
333
111222
111222333
13行目

# grep -v aaa test.txt
AAA
bbb
BBB
bbbBBB
111
222
333
111222
111222333
13行目

「-w」
(単語単位で一致を検索する)

# cat test.txt
aaa
AAA
aaaAAA
bbb
BBB
bbbBBB
aaa bbb ccc
111
222
333
111222
111222333
13行目

# grep -w aaa test.txt
aaa
aaa bbb ccc
よかったらシェアしてね!
  • URLをコピーしました!
目次