カテゴリ: Linuxコマンド集 更新日: 2026/03/05

grep -xオプション|行全体が一致するものだけを検索する使い方を初心者向けに解説!

grep -xオプション|行全体が一致するものだけを検索する
grep -xオプション|行全体が一致するものだけを検索する

先生と生徒の会話形式で理解しよう

生徒

「Linuxでファイルから特定の文字列だけが書かれた行だけを探したいんですが、似たような行までヒットしちゃうんです…」

先生

「それなら、grepコマンドの-xオプションを使えば、行全体が完全に一致した場合だけ結果として表示されますよ。」

生徒

「部分的に一致する行は無視できるってことですね!便利そう!」

先生

「その通り!それではgrep -xの使い方を丁寧に解説していきましょう。」

1. grepコマンドとは?

1. grepコマンドとは?
1. grepコマンドとは?

grep(グレップ)は、Linuxで使われる文字列検索コマンドです。テキストファイルの中から、指定した文字列が含まれる行を見つけるのに使います。

例えば、「banana」という単語が入っている行を探すには次のようにします。


grep banana fruits.txt

しかし、これだと「banana」と「banana juice」や「green banana」など、部分的に一致する行もすべてヒットしてしまいます。

2. -xオプションとは?行全体が一致したときだけヒットする

2. -xオプションとは?行全体が一致したときだけヒットする
2. -xオプションとは?行全体が一致したときだけヒットする

-xオプションを使うと、1行全体が検索文字列と完全に一致した行だけが表示されます。つまり、余計な単語や前後に余分な文字がある行は無視されます。

以下のようなファイルfruits.txtがあるとします:


cat fruits.txt
apple
banana
banana juice
green banana
banana

この中から「banana」だけの行を探したいときに、通常のgrepを使うと…


grep banana fruits.txt
banana
banana juice
green banana
banana

このように、「banana」を含むすべての行が表示されます。

では-xをつけて検索してみましょう:


grep -x banana fruits.txt
banana
banana

このように、「banana」という文字だけが書かれた行だけを抽出できます。

3. grep -xの使いどころ

3. grep -xの使いどころ
3. grep -xの使いどころ

以下のような場面でgrep -xは非常に便利です。

  • 設定ファイルの中から、完全一致の行だけを探したいとき
  • リストやログファイルなどで、正確な一致を確認したいとき
  • データ処理で、特定の値だけを持つ行を抽出したいとき

特に、「一致しているかどうかを厳密に判断したい」というときにはgrep -xが最適です。

4. 応用例:複数の完全一致パターンを検索したいとき

4. 応用例:複数の完全一致パターンを検索したいとき
4. 応用例:複数の完全一致パターンを検索したいとき

たとえば、「apple」と「banana」だけが書かれている行を両方検索したいときは、-E(拡張正規表現)を組み合わせて使えます。


grep -xE 'apple|banana' fruits.txt
apple
banana
banana

このように、appleまたはbananaという行全体が一致した行だけを抽出することができます。

5. grep -xと-wの違いは?

5. grep -xと-wの違いは?
5. grep -xと-wの違いは?

-wオプションも「単語単位での一致」を行うため似ていますが、行全体が一致する必要はありません

以下のファイルを例に比較してみましょう:


cat sample.txt
apple
green apple
apple juice
apple

-wの場合:


grep -w apple sample.txt
apple
green apple
apple juice
apple

-xの場合:


grep -x apple sample.txt
apple
apple

このように、-xを使うと、「apple」だけの行に限定できるため、より厳密なフィルタリングが可能です。

6. 注意点:空白や改行も一致条件に含まれる

6. 注意点:空白や改行も一致条件に含まれる
6. 注意点:空白や改行も一致条件に含まれる

-x行全体と一致する必要があるため、行の中に余計なスペースや改行コードがあると一致しません。

例えば、以下のようにスペースが含まれているとマッチしません:


echo "banana " | grep -x banana
(出力なし)

見た目では同じに見えても、実際はスペースやタブなどが原因で一致しない場合があるので、注意が必要です。

カテゴリの一覧へ
新着記事
New1
テキスト・データ処理
grep -xオプション|行全体が一致するものだけを検索する使い方を初心者向けに解説!
New2
ファイル・ディレクトリ操作
Linuxコマンドcd -P解説|シンボリックリンクを解決して物理パスへ移動する方法
New3
ファイル・ディレクトリ操作
Linuxコマンドpwd --version解説|バージョン情報を表示して環境を確認する方法
New4
ファイル・ディレクトリ操作
cp -sオプションの使い方を完全ガイド!初心者でもわかるシンボリックリンク作成法
人気記事
No.1
Java&Spring記事人気No1
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.2
Java&Spring記事人気No2
テキスト・データ処理
grepコマンドとは?Linuxで文字列を検索する基本をやさしく解説!
No.3
Java&Spring記事人気No3
ファイル・ディレクトリ操作
find -deleteオプションを完全解説!初心者でもできるLinuxファイル削除の基本
No.4
Java&Spring記事人気No4
テキスト・データ処理
grep -cオプションの使い方を完全ガイド!Linuxで一致した行数をカウントする方法