クリップボードにコピーしました!
文字列のgrep

grepの大文字・小文字を徹底解説

updated: 2026/07/20 created: 2026/07/20

grepはテキスト検索で頻繁に利用されるコマンドですが、大文字と小文字の扱いを理解していないと期待した結果が得られないことがあります。

特に初学者は、検索結果が表示されない原因が文字の違いだったというケースでつまずきがちです。

本記事では、基本から応用までを詳しく解説します

参考:GNU grep

grepで大文字・小文字を区別する方法

ファイル作成

cat << 'EOF' > input.txt Apple apple APPLE Banana BANANA banana EOF

実行コマンド

grep "Apple" input.txt

実行結果

Apple

実行コマンド

grep -i "Apple" input.txt

実行結果

Apple
apple
APPLE

仕組み

項目 内容
grep デフォルトでは大文字・小文字を区別して検索する。
grep -i -i(--ignore-case)を指定すると、大文字・小文字を区別せず検索する。
利用場面 ユーザー入力やログ解析など、文字の大小を意識せず検索したい場合に便利。

解説

grepは標準では大文字・小文字を区別します。

-iオプションを付けるだけで区別せず検索できるため、柔軟な文字列検索が可能です。

grepで大文字・小文字を区別しないオプション(-i)の基本

ファイル作成

cat << 'EOF' > input.txt Apple apple APPLE Banana banana Cherry EOF

実行コマンド

grep -i "apple" input.txt

実行結果

Apple
apple
APPLE

実行コマンド

grep -i "banana" input.txt

実行結果

Banana
banana

仕組み

項目 内容
grep 指定したパターンを含む行を検索するコマンド
-i 大文字・小文字を区別せずに検索するオプション
"apple" 検索する文字列
input.txt 検索対象のファイル

解説

grepは通常、大文字・小文字を区別して検索しますが、-iオプションを付けることで区別せずに検索できます。
Apple・apple・APPLEのような表記ゆれをまとめて検索したい場合に便利です。

grepで大文字・小文字を区別するオプション(--ignore-caseとの違い)

ファイル作成

cat << 'EOF' > input.txt Apple apple APPLE Banana banana BANANA EOF

実行コマンド

grep -i "apple" input.txt

実行結果

Apple
apple
APPLE

実行コマンド

grep --ignore-case "banana" input.txt

実行結果

Banana
banana
BANANA

仕組み

項目 内容
-i --ignore-caseの短縮オプション。大文字・小文字を区別せず検索する。
--ignore-case -iのロングオプション。機能は完全に同じで、可読性を重視する場合に使われる。
違い 機能・動作に違いはなく、記述方法(短縮形かロングオプションか)だけが異なる。

解説

-iと--ignore-caseは同じ機能を持つため、好みや可読性に応じて使い分けます。
短く書くなら-i、スクリプトなどで意味を明確にしたい場合は--ignore-caseが便利です。

grepで大文字・小文字を区別しない単語検索を行う方法

ファイル作成

cat << 'EOF' > input.txt Apple apple APPLE Banana banana Orange EOF

実行コマンド

grep -i "apple" input.txt

実行結果

Apple
apple
APPLE

仕組み

項目 内容
grep テキストから条件に一致する行を検索するコマンド
-i 大文字・小文字を区別せずに検索するオプション(ignore case)
"apple" 検索する単語
input.txt 検索対象のファイル

解説

grep の -i オプションを使用すると、大文字・小文字の違いを無視して文字列を検索できます。
Apple、apple、APPLE のような表記ゆれがあるデータの検索に便利です。

grepで大文字・小文字を区別しない完全一致検索を行う方法

ファイル作成

cat << 'EOF' > input.txt Apple apple APPLE Banana banana EOF

実行コマンド

grep -ix "apple" input.txt

実行結果

Apple
apple
APPLE

仕組み

オプション 役割
grep テキストを検索するコマンド
-i 大文字・小文字を区別せずに検索する
-x 行全体が検索文字列と完全一致するものだけを対象にする
"apple" 検索する文字列
input.txt 検索対象のファイル

解説

大文字・小文字を区別せず完全一致検索を行うには、-i と -x を組み合わせます。
これにより Apple や APPLE は一致しますが、apple123 や myapple のような部分一致は検索結果に含まれません。

grepで大文字・小文字を区別しない正規表現検索

ファイル作成

cat << 'EOF' > input.txt Apple apple APPLE Banana banana Orange EOF

実行コマンド

grep -Ei 'apple|banana' input.txt

実行結果

Apple
apple
APPLE
Banana
banana

実行コマンド

grep -i '^apple$' input.txt

実行結果

Apple
apple
APPLE

仕組み

項目 内容
grep ファイル内から条件に一致する行を検索するコマンド
-i 大文字・小文字を区別せずに検索する
-E 拡張正規表現を有効にし、|を使ったOR検索を利用できる
apple|banana appleまたはbananaに一致する正規表現
^apple$ 行全体がapple(大文字・小文字は-iで無視)の場合のみ一致

解説

grep -iを利用すると、大文字・小文字を区別せずに文字列を検索できます。

-Eを組み合わせることで、|を使ったOR検索などの拡張正規表現も簡潔に記述できます。

grepで大文字・小文字を区別しない複数パターン検索

ファイル作成

cat << 'EOF' > input.txt Apple apple APPLE Banana banana Cherry CHERRY Grape EOF

実行コマンド

grep -Ei 'apple|cherry' input.txt

実行結果

Apple
apple
APPLE
Cherry
CHERRY

仕組み

項目 内容
grep テキストから条件に一致する行を検索するコマンド
-E 拡張正規表現を有効にし、pattern1|pattern2のようなOR検索を使用できる
-i 大文字・小文字を区別せずに検索する
apple|cherry appleまたはcherryに一致する行を検索する
input.txt 検索対象のファイル

解説

-iを指定することで、Apple・APPLE・appleのような大文字・小文字の違いを無視して検索できます。

-Eと|を組み合わせることで、複数の検索パターンを簡潔に指定できます。

grepで大文字・小文字を区別しない再帰検索

ファイル作成

mkdir -p docs logs src

ファイル作成

cat << 'EOF' > docs/README.md This is Sample Text EOF

ファイル作成

cat << 'EOF' > docs/guide.txt sample text EOF

ファイル作成

cat << 'EOF' > logs/app.log ERROR: Connection Failed EOF

ファイル作成

cat << 'EOF' > logs/system.log error: disk full EOF

ファイル作成

cat << 'EOF' > src/main.py Print("Hello World") EOF

ファイル作成

cat << 'EOF' > src/test.py print("hello world") EOF

実行コマンド

grep -ri "error" .

実行結果

./logs/system.log:error: disk full
./logs/app.log:ERROR: Connection Failed

仕組み

項目 内容
grep テキストを検索するコマンド
-r 指定したディレクトリ配下を再帰的に検索する
-i 大文字・小文字を区別せずに検索する
"error" 検索する文字列。ERROR、Error、error を同一とみなして検索する
. カレントディレクトリ以下を検索対象にする

解説

grep -ri を使用すると、ディレクトリ配下のすべてのファイルを対象に、大文字・小文字を区別せず文字列を検索できます。
ログやソースコード全体から特定のキーワードを効率よく探す際によく利用されます。

grepで大文字・小文字を区別しない検索対象ファイルを限定する方法

ファイル作成

cat << 'EOF' > input.txt Apple apple APPLE Banana banana Orange EOF

実行コマンド

grep -i "apple" input.txt

実行結果

Apple
apple
APPLE

実行コマンド

grep -i "banana" input.txt

実行結果

Banana
banana

仕組み

項目 内容
grep ファイル内から指定した文字列を検索するコマンドです。
-i 大文字・小文字を区別せずに検索します(Ignore case)。
"apple" 検索する文字列を指定します。
input.txt 検索対象のファイルを指定します。オプションの後ろに指定することで検索対象を限定できます。

解説

grep -iを使用すると、大文字・小文字を区別せずに文字列を検索できます。検索対象のファイル名を最後に指定することで、特定のファイルだけを検索できます。

grepで大文字・小文字を区別しない検索結果を行番号付きで表示する

ファイル作成

cat << 'EOF' > input.txt Apple apple APPLE Banana banana Cherry EOF

実行コマンド

grep -in "apple" input.txt

実行結果

1:Apple
2:apple
3:APPLE

仕組み

項目 内容
grep 指定した文字列を含む行を検索するコマンド
-i 大文字・小文字を区別せずに検索する(Ignore case)
-n 一致した行の行番号を表示する
"apple" 検索する文字列
input.txt 検索対象のファイル

解説

-i オプションを付けることで、Apple・apple・APPLE のように大文字・小文字が異なっていても一致する行を検索できます。
-n を組み合わせることで、一致した行番号も同時に確認できます。

grepで大文字・小文字を区別しない検索結果の前後の行を表示する

ファイル作成

cat << 'EOF' > input.txt Linux linux Ubuntu LINUX Debian CentOS LiNuX Fedora EOF

実行コマンド

grep -i -C 1 "grep" input.txt

実行結果

no output

実行コマンド

grep -i -C 1 "linux" input.txt

実行結果

Linux
linux
Ubuntu
LINUX
Debian
CentOS
LiNuX
Fedora

仕組み

オプション 説明
grep 指定した文字列を検索するコマンド
-i 大文字・小文字を区別せずに検索する
-C 1 一致した行の前後1行もあわせて表示する
"linux" 検索対象の文字列
input.txt 検索対象のファイル

解説

-i を指定すると Linux、LINUX、LiNuX など大文字・小文字が異なる文字列も同一とみなして検索できます。

-C 1 を組み合わせることで、一致した行の前後1行も表示され、検索結果の文脈を確認できます。

grepで大文字・小文字を区別しない検索結果をパイプで活用する方法

ファイル作成

cat << 'EOF' > input.txt Apple apple APPLE Banana banana Cherry EOF

実行コマンド

grep -i "apple" input.txt

実行結果

Apple
apple
APPLE

実行コマンド

grep -i "apple" input.txt | wc -l

実行結果

3

実行コマンド

grep -i "banana" input.txt | sort

実行結果

Banana
banana

仕組み

項目 内容
grep テキストを検索するコマンド
-i 大文字・小文字を区別せずに検索するオプション
| 前のコマンドの検索結果を次のコマンドへ渡す(パイプ)
wc -l パイプで受け取った行数を数える
sort パイプで受け取った検索結果を並び替える

解説

grep -iを使用すると、大文字・小文字の違いを気にせず検索できます。
パイプ(|)を組み合わせることで、検索結果の件数集計や並び替えなどの処理へ簡単に活用できます。

grepで大文字・小文字を区別しない検索をfindコマンドと組み合わせる方法

ファイル作成

cat << 'EOF' > input.txt Hello World HELLO Linux hello grep Sample Text HELLO FIND Goodbye EOF

実行コマンド

find . -name "input.txt" -exec grep -i "hello" {} \;

実行結果

Hello World
HELLO Linux
hello grep
HELLO FIND

仕組み

仕組み 内容
find . カレントディレクトリから検索を開始する
-name "input.txt" input.txtという名前のファイルを検索する
-exec 見つかったファイルに対してコマンドを実行する
grep -i "hello" helloを大文字・小文字を区別せずに検索する
{} findで見つかったファイル名に置き換えられる
\; -execの終了を表す

解説

grepの-iオプションを使用すると、大文字・小文字を区別せずに文字列を検索できます。
findコマンドと組み合わせることで、複数のファイルから条件に一致する文字列を効率よく検索できます。

grepで大文字・小文字を区別しない検索ができない原因と対処法

ファイル作成

cat << 'EOF' > input.txt Apple apple APPLE Banana BANANA orange Orange EOF

実行コマンド

grep "apple" input.txt

実行結果

apple

実行コマンド

grep -i "apple" input.txt

実行結果

Apple
apple
APPLE

実行コマンド

grep --ignore-case "banana" input.txt

実行結果

Banana
BANANA

仕組み

項目 内容
原因 grepはデフォルトで大文字・小文字を区別して検索するため。
対処法 -iオプションを指定して検索する。
長いオプション --ignore-caseでも同じ動作になる。
効果 大文字・小文字の違いを無視して一致する行を検索できる。

解説

grepで大文字・小文字を区別しない検索ができない原因は、-iオプションを付けていないことがほとんどです。
-iまたは--ignore-caseを指定することで、大文字・小文字を意識せず柔軟に検索できます。

grepで大文字・小文字を区別しない検索でよく使うオプション一覧

ファイル作成

cat << 'EOF' > input.txt Hello World hello world HELLO WORLD Linux linux LiNuX Grep grep EOF

実行コマンド

grep -i "hello" input.txt

実行結果

Hello World
hello world
HELLO WORLD

実行コマンド

grep -i "linux" input.txt

実行結果

Linux
linux
LiNuX

実行コマンド

grep -in "grep" input.txt

実行結果

7:Grep
8:grep

実行コマンド

grep -iv "hello" input.txt

実行結果

Linux
linux
LiNuX
Grep
grep

仕組み

オプション 説明 動作
-i 大文字・小文字を区別しない Hello・hello・HELLO を同一文字列として検索する
-in 大文字・小文字を区別せず行番号も表示 一致した行の先頭に行番号を付与する
-iv 大文字・小文字を区別せず一致しない行を表示 検索文字列を含まない行のみを出力する

解説

grepで大文字・小文字を区別しない検索を行う場合は、-iオプションが最もよく使用されます。

-nや-vと組み合わせることで、検索結果の確認や除外検索も効率よく行えます。

grepの大文字・小文字検索のポイントまとめ

grepは標準では大文字と小文字を区別して検索します。

区別せず検索したい場合は-iまたは--ignore-caseを利用します。

基本的なオプションの役割を理解しておくことが、grepを効率よく使いこなす近道です。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

©︎ 2025-2026 running terminal commands