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

grep -Pオプション|Perl互換正規表現を利用する(環境依存)

grep -Pオプション|Perl互換正規表現を利用する(環境依存)
grep -Pオプション|Perl互換正規表現を利用する(環境依存)

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

生徒

「Linuxのgrepコマンドで正規表現を使うと便利って聞いたんですけど、-Pオプションって何ですか?」

先生

-Pオプションは、Perl互換正規表現(PCRE)を使って検索できる機能なんです。普通の正規表現よりも強力な書き方ができるんですよ。」

生徒

「Perl互換正規表現ってなんだか難しそうですね…。具体的にどう違うんですか?」

先生

「大丈夫です。順番に例を見ながら説明するので、初心者でも理解できると思いますよ!」

1. grepコマンドとは?

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

Linuxのgrepコマンドは、ファイルやテキストの中から特定の文字列を探すためのツールです。例えば、日記の中から「雨」という文字を探したり、ログファイルの中から「エラー」という単語を見つけるといった使い方ができます。初心者でもよく使う基本的なコマンドであり、システム管理やプログラミングの場面でも欠かせない存在です。

2. -Pオプションとは?

2. -Pオプションとは?
2. -Pオプションとは?

-Pオプションを付けると、Perl互換正規表現(PCRE)を使って検索できます。正規表現とは、文字の並びを表現する特別な記号の組み合わせです。たとえば「数字だけを探したい」といった場合に便利です。通常のgrepでは使えない複雑なパターンも、-Pを使えば書けることがあります。

ただし、このオプションは環境依存です。Linuxディストリビューションによっては、grepがPCREに対応していないこともあります。その場合はエラーになったり、使えないことがありますので注意が必要です。

3. 基本的な使い方の例

3. 基本的な使い方の例
3. 基本的な使い方の例

例えば、数字が含まれる行だけを検索したいときに-Pオプションを使うと、次のようになります。


echo "abc123" | grep -P "\d+"
abc123

ここで使っている\d+は、「数字(digit)が1回以上繰り返される」という意味です。\dはPerl互換正規表現でよく使われる記号で、通常のgrepの正規表現では使えません。

4. よく使われるPCREの例

4. よく使われるPCREの例
4. よく使われるPCREの例

以下に、Perl互換正規表現でよく使われるパターンを紹介します。

  • \d:数字(0〜9)
  • \w:英数字とアンダースコア
  • \s:空白文字(スペースやタブ)
  • +:直前の文字が1回以上
  • {n,m}:直前の文字がn回以上m回以下

これらを組み合わせることで、柔軟に文字列を検索できます。

5. 環境による違いと注意点

5. 環境による違いと注意点
5. 環境による違いと注意点

-Pオプションはとても便利ですが、環境によっては使えないことがあります。たとえば、あるLinuxディストリビューションではPCREが有効になっていない場合があるため、そのままではエラーになります。その場合は、pcregrepというコマンドを代わりに使う方法もあります。


echo "abc123" | pcregrep "\d+"
abc123

このように、システム環境によって選択肢が変わるため、自分のLinux環境で対応しているか確認しながら使うことが大切です。

6. 他のgrepオプションとの組み合わせ

6. 他のgrepオプションとの組み合わせ
6. 他のgrepオプションとの組み合わせ

もちろん、-Pは他のオプションと組み合わせて使うことも可能です。例えば、-iをつければ大文字小文字を区別せずに検索できます。


echo "Hello123" | grep -Pi "\d+"
Hello123

また、-oを付ければマッチした部分だけを表示できます。


echo "OrderID: 98765" | grep -Po "\d+"
98765

7. 似たコマンドとの違い

7. 似たコマンドとの違い
7. 似たコマンドとの違い

grepには他にも正規表現を拡張して使うためのオプションがあります。

  • -E:拡張正規表現(ERE)を使う
  • -F:正規表現ではなく固定文字列として検索する

通常のgrepや-Eでは表現できない複雑なパターンを検索したいときに、-Pが役に立ちます。ただし、環境依存のため、どうしても必要なときにだけ使うのがおすすめです。

関連記事:
カテゴリの一覧へ
新着記事
New1
圧縮・アーカイブ
bunzip2 -fオプションの使い方を完全ガイド!Linuxで圧縮ファイルを強制上書きする方法
New2
テキスト・データ処理
headコマンドとは?Linuxでファイルの先頭部分を表示する基本
New3
Linuxコマンドの基本
Linuxのパスの基本!絶対パスと相対パスの違いを初心者向けにやさしく解説
New4
ディスクとファイルシステム管理
mountコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイルシステムマウント方法
人気記事
No.1
Java&Spring記事人気No1
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.2
Java&Spring記事人気No2
テキスト・データ処理
catコマンドとは?Linuxでファイル内容を表示・連結する基本
No.3
Java&Spring記事人気No3
ファイル・ディレクトリ操作
cd ~ の使い方を完全解説!ホームディレクトリへの移動方法と初心者向けLinuxコマンド入門
No.4
Java&Spring記事人気No4
圧縮・アーカイブ
tarコマンドの使い方を完全ガイド!初心者でもわかるLinuxのアーカイブ作成と解凍の基本