---
title: LPIC101_regex_B18
tags: 
author: [Yukiko](https://docswell.com/user/yukiko_it)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/GE5M18DDE4.jpg?width=480
description: LPIC101_regex_B18 by Yukiko
published: April 22, 26
canonical: https://docswell.com/s/yukiko_it/K8NVN1-2026-04-22-060138
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/GE5M18DDE4.jpg)

L P I C
L e v e l
1
—
1 0 1 試 験
/
主 題 1 0 3 . 7
grep と 正規表現
— ログから目当ての行だけ抜き出す技術 —
「パターン→ファイル」の順序さえ守れば怖くない！
新卒未経験・文系向け 図解強化版
ALJ Education Plus / 面白きなき世を面白く


# Page. 2

![Page Image](https://bcdn.docswell.com/page/97291VMMJR.jpg)

W ARM -U P
2 / 16
問18 を振り返ろう
問18 / 60問 正規表現
ここがポイント
タイムスタンプ DD/MM/YYYY:hh:mm:ss 形式の
ログから、午後3時台(15時台)のエントリを
抽出するコマンドはどれですか。
grep -E → 拡張正規表現 ON
[0-9]+ → 数字が1文字以上
grep -E &#039;:15:[09]+:[09]+&#039; access.log
grep -E &#039;:15:[00]+&#039; access.log
構文は grep [OPT] パターン ファイル
grep -E access.log &#039;:15:[0-9]+:[0-9]+&#039;
grep access.log &#039;:15:[0-9]:[0-9]&#039;
選択肢③は ファイルとパターンが逆！
grep -E &#039;:15:[0-9]+:[0-9]+&#039; access.log
→ この問題を 100% 自信を持って解けるようになりましょう！


# Page. 3

![Page Image](https://bcdn.docswell.com/page/DJY4Z3XP7M.jpg)

AGE NDA
3 / 16
今日のゴール
1
2
3
4
grep の正体
「検索の王様」grep がどんなコマンドか、名前の由来まで分かる
正規表現のキホン
[0-9]+ や . * など、メタ文字の意味を図で理解できる
grepの構文
grep [OPT] パターン ファイル の順序を身につける
問18を解ける
ログから特定時間帯のエントリを抽出する式を自力で書ける
「正規表現はパズル」— メタ文字を覚えて当てはめるだけ。文系でも絶対できます！


# Page. 4

![Page Image](https://bcdn.docswell.com/page/V7NY3V1ME8.jpg)

①
この用語
4 / 16
grep（グレップ）って？
一行で言うと
ファイルの中から、条件に合う行だけ抜き出す
コマンド
grep
3つの特徴
1
毎日使う実務最頻出コマンド
ログ調査・設定ファイル検索の定番
Global Regular Expression Print
2
= ファイル全体から正規表現で
一致した行を印字する
3
正規表現とセットで覚える
パターンで柔軟に検索できる
LPIC 101 主題 103.7 の中心
必ず試験に出る！
大文字を含む「GREP」ではなく、すべて小文字の「grep」で使います。


# Page. 5

![Page Image](https://bcdn.docswell.com/page/YJ9P965W73.jpg)

①
この用語
5 / 16
正規表現（regex）って？
例えば…「電話番号っぽい行」を探したい
文字のベタ検索だと…
grep &quot;090-1234-5678&quot; data.txt
→ 「090-1234-5678」しか見つからない。
他の番号は全部スルー…
regex
正規表現なら…
Regular Expression
grep -E &quot;[0-9]{3}-[0-9]{4}-[0-9]{4}&quot; data.txt
= 文字列のパターンを
記号で書く「検索の設計図」
→ 090-1234-5678
080-9999-0000
すべての電話番号がヒット！
grep + 正規表現 = 実務のスーパーパワー


# Page. 6

![Page Image](https://bcdn.docswell.com/page/GJ8D9ZYRJD.jpg)

②
簡単に書くよ
※
正確な表現ではございません
6 / 16
うさうさラーメン店の注文台帳で例えるよ
店長の悩み：「今日の午後3時台だけ何杯出たか知りたい！注文台帳を1行ずつ読むのはムリ…」
注文台帳 (access.log)
抽出結果
22/04/2026:13:22:01
醤油
←朝
22/04/2026:14:55:42
味噌
←昼
22/04/2026:15:03:11
塩
22/04/2026:15:27:59
豚骨 ←
22/04/2026:15:48:02
醤油 ←
22/04/2026:16:15:30
味噌
←夕
22/04/2026:19:02:44
塩
←夜
←
「15時台だけ
ちょうだい」
22/04/2026:15:03:11
塩
22/04/2026:15:27:59
豚骨
22/04/2026:15:48:02
醤油
grep -E
→ 店長「ありがとー！
3杯だね、グラフ作ろう」
この世界の対応表：注文台帳 = access.log ／ 3時台の注文 = パターン ／ 店長 = grepコマンド


# Page. 7

![Page Image](https://bcdn.docswell.com/page/LJLMWD42ER.jpg)

③
詳しく書くよ
※
原理原則
7 / 16
grep の構文 — 順序が超・大事！
grep
[OPTIONS]
PATTERN
FILE
コマンド名
オプション（任意）
検索パターン（必須）
対象ファイル（必須）
正しい順序
これはダメな例
grep -E &#039;pattern&#039; file.txt
grep -E file.txt &#039;pattern&#039;
✓ パターンが先、ファイルが後
✓ パターンはシングルクォートで囲む
（シェル解釈を防ぐ）
✗ ファイルとパターンが逆
✗ grep は「最初の引数 = パターン」と
認識する。file.txt を正規表現として
解釈しようとして失敗
覚え方：grep【道具】【オプション】【何を】【どこで】


# Page. 8

![Page Image](https://bcdn.docswell.com/page/47MY9PK97W.jpg)

③
詳しく書くよ
※
原理原則
8 / 16
基本正規表現（BRE） vs 拡張正規表現（ERE）
正規表現には「基本(BRE)」と「拡張(ERE)」の2種類。grep はデフォルトで BRE、-E で ERE になる。
書き方
grep（デフォルト）
grep -E / egrep
. * ^ $ []
そのまま使える
そのまま使える
+ ? {} | ()
\ でエスケープ必要
例：\+ \? \{\}
そのまま使える
例：+ ? {}
どちらを使う？
単純な検索に
実用・複雑な検索に（推奨）
LPIC での出題
違いを問う問題は頻出
-E の書式例は必出
実務と試験対策：迷ったら grep -E を使う。パターンがシンプルで済む＝ミスが減る！


# Page. 9

![Page Image](https://bcdn.docswell.com/page/P7R9G1X9E9.jpg)

③
詳しく書くよ
※
原理原則
9 / 16
メタ文字チートシート（これだけ覚えよう）
記号
意味
例
マッチする例
.
任意の1文字
a.c
abc, a1c, a c
*
直前の文字を0回以上
ab*
a, ab, abb, abbb
+
直前の文字を1回以上 (ERE)
ab+
ab, abb, abbb（a単独はNG）
?
直前の文字を0か1回 (ERE)
colou?r
color, colour
^
行頭
^Error
Error: xxx
$
行末
\.log$
access.log
[abc]
a か b か c
gr[ea]y
gray, grey
[0-9]
数字1文字
[0-9]
0, 1, 2, … 9
[0-9]+
数字1文字以上 (ERE)
:[0-9]+:
:15:, :123:
または (ERE)
cat|dog
cat, dog
|
+ ? | ( ) { } は -E なしだと使えない（\で逃がす必要あり）。-E で素直に書こう！


# Page. 10

![Page Image](https://bcdn.docswell.com/page/PJXQXY637X.jpg)

③
詳しく書くよ
※
原理原則
10 / 16
問18の正解を分解してみよう
grep -E &#039;:15:[0-9]+:[0-9]+&#039; access.log
パターン :15:[0-9]+:[0-9]+ を部品ごとに見ていく
部品 1
部品 2
部品 3
部品 4
:15:
[0-9]+
:
[0-9]+
コロン+「15」+コロン
＝時刻部分の「15時」を固定
数字1文字以上
＝分の数（01, 27, 48など）
区切りのコロン
そのまま書くだけ
数字1文字以上
＝秒の数（11, 59, 02など）
全部つなげると → 「15時 : ○○(分) : ○○(秒)」にマッチするログを抽出！


# Page. 11

![Page Image](https://bcdn.docswell.com/page/3JK9W31NJD.jpg)

③
詳しく書くよ
※
原理原則
5つの選択肢を一気に検証！
1
2
3
4
5
grep -E &#039;:15:[09]+:[09]+&#039; access.log
[09]は「0か9」のみ。1〜8がマッチしない
grep -E &#039;:15:[00]+&#039; access.log
[00]は「0」のみ。時刻全体を表せない
grep -E access.log &#039;:15:[0-9]+:[0-9]+&#039;
★パターンとファイルの順序が逆！
grep access.log &#039;:15:[0-9]:[0-9]&#039;
順序が逆 &amp; -E なし &amp; 数字1桁しか取れない
grep -E &#039;:15:[0-9]+:[0-9]+&#039; access.log
順序OK、-E OK、[0-9]+ で数字複数桁OK
11 / 16


# Page. 12

![Page Image](https://bcdn.docswell.com/page/LE3W1GQZE5.jpg)

④
一言でまとめるよ！
12 / 16
原理原則
grep は
〈-E〉〈パターン〉〈ファイル〉の順で書く。
[0-9]+ のように「+」を使うなら -E を忘れずに。
順番と -E、これさえ押さえれば正規表現は怖くない。
順序
-E
クォート
パターン→ファイル
+ ? | { } ( ) が書ける
&#039;…&#039; で囲むのが安全
この三本柱をうさうさラーメン店の暖簾に掲げておこう！


# Page. 13

![Page Image](https://bcdn.docswell.com/page/8EDKX1947G.jpg)

ディストリビューション差異
13 / 16
Ubuntu と RedHat系で違いはある？
結論：grep コマンドの動作は Ubuntu も RedHat も同じ！（どちらも GNU grep）
Ubuntu
RedHat / CentOS / Rocky
パッケージ
パッケージ
grep (標準インストール済み)
grep (標準インストール済み)
パス
パス
/usr/bin/grep または /bin/grep
/usr/bin/grep
バージョン確認
バージョン確認
grep --version
grep --version
インストール
インストール
sudo apt install grep
(通常不要)
sudo dnf install grep
(通常不要)
egrep / fgrep は非推奨。grep 3.8以降では警告が出る → grep -E / grep -F を使おう


# Page. 14

![Page Image](https://bcdn.docswell.com/page/V7PKPQZVJ8.jpg)

HANDS -ON
14 / 16
実機で試してみよう（安全です！）
grep は読み取り専用のコマンド。どれだけ実行しても、ファイルを壊すことはありません
bash — ~/kensyuu
# ① 練習用ログを作る
$ cd ~/kensyuu &amp;&amp; mkdir -p grep_lab &amp;&amp; cd grep_lab
$ cat &gt; access.log &lt;&lt; EOF
22/04/2026:13:22:01 soy_sauce
22/04/2026:15:03:11 salt
22/04/2026:15:27:59 tonkotsu
22/04/2026:16:15:30 miso
EOF
# ② 15時台だけ抽出（問18の解答式！）
$ grep -E &#039;:15:[0-9]+:[0-9]+&#039; access.log
22/04/2026:15:03:11 salt
22/04/2026:15:27:59 tonkotsu
慣れたら -i（大小無視）-n（行番号）-c（件数）-v（不一致） も試してみよう！


# Page. 15

![Page Image](https://bcdn.docswell.com/page/2JVV25WRJQ.jpg)

PIT FALLS
15 / 16
よくある落とし穴 TOP5
1
2
3
4
5
パターンとファイルの順序を逆に書く
✗
grep -E file.txt &#039;pattern&#039;
grep -E &#039;pattern&#039; file.txt
-E なしで + や { } を使ってしまう
✗
grep &#039;[0-9]+&#039; data.txt
（+ が効かない）
grep -E &#039;[0-9]+&#039; data.txt
パターンを囲まずシェルに解釈される
✗
grep -E $HOME data.txt
（変数展開される）
grep -E &#039;$HOME&#039; data.txt
（シングルクォート）
[0-9]+ と [09]+ を混同
✗
[09]+ = 「0か9」が1回以上（1〜8がNG）
[0-9]+ = 「0〜9」が1回以上（正解）
egrep / fgrep を書いてしまう（非推奨）
✗
egrep &#039;pattern&#039; file
（警告が出る）
grep -E &#039;pattern&#039; file


# Page. 16

![Page Image](https://bcdn.docswell.com/page/5EGLR6D6JL.jpg)

W RAP -U P
16 / 16
まとめ &amp; 公式リソース
今日の3つのキー
1
2
原理原則を学ぶ公式リソース
grep [-E] &#039;パターン&#039; ファイル
LPI Learning Materials 103.7 (JP)
順序は絶対！
learning.lpi.org/ja/learning-materials/101-500/103/103.7/
-E で拡張正規表現が使える
+ ? | { } ( ) が素直に書ける
LPIC-1 Exam 101 主題一覧 (LPI)
lpi.org/ja/our-certifications/exam-101-objectives
LPI日本支部 今日の一題（103.7演習）
3
[0-9]+ = 数字1文字以上
lpi.jp/today/list_exam.phtml?cls2_code=6
「+」が効くのは -E があるから
小豆本 p.113〜 正規表現 / p.116〜 grep
LPICレベル1 スピードマスター問題集 対応
「面白きなき世を面白く」— grep も正規表現も、分かれば面白い！


