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

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

LPIC-101 v5.0
｜ 小豆 本対 応
sed の s/// 置換
デフォルトは各行「最初の1回」だけ。g で全部。
新卒・文系・未経験のための IT 研修
文字クラス [ABC][0-9] の解釈も合わせて理解
うさうさラーメン店方式


# Page. 2

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

PROBLEM
今日のお題 ― B問題セット 問23
正規表現 s/[ABC][0-9]/##/ を文字列 &#039;A1B2C3&#039; に適用した場合の結果はどれですか。
1
##B2C3
2
A1##C3
3
A1B2##
4
######
5
A1B2C3
※ 単一選択（正解は1つ）
LPIC-101 ｜ sed の s/// はデフォルトで最初のマッチだけ
2 / 10


# Page. 3

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

① この用語
s/パターン/置換/ の基本構造
用語
s/// 命令
sed の substitute（置換）
うさうさラーメン店で例えると
お客「辛味噌を味噌に変えて」
→ 最初の辛味噌だけを味噌に。
2杯目以降の辛味噌は据え置き
書式:
s/pattern/replacement/
↓
動作: 各行の 最初のマッチのみ置換。
全部置換したい時は末尾に g フラグを付ける。
s/辛味噌/味噌/
→ 最初の1つだけ変更
s/辛味噌/味噌/g
→ g を付けると全部
g = global (全件)
LPIC-101 ｜ sed の s/// はデフォルトで最初のマッチだけ
3 / 10


# Page. 4

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

② 簡単に
パターン [ABC][0-9] は「2文字」
[ABC][0-9]
[ABC] = A/B/Cのどれか1文字 + [0-9] = 数字1文字
→ 合計 2文字 にマッチする
&#039;A1B2C3&#039; のマッチ候補
先頭
中央
末尾
A1
B2
C3
★ これだけ選ばれる
通常は選ばれない
通常は選ばれない
LPIC-101 ｜ sed の s/// はデフォルトで最初のマッチだけ
4 / 10


# Page. 5

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

③ 詳しく①
1
2
3
4
置換の流れを1ステップずつ
入力
1行の文字列として渡される
A1B2C3
左から走査
2文字ずつ見てパターンと照合
A1 B2 C3
最初のマッチを発見
先頭の A1 がパターンに合致
[A1] B2 C3
置換して終了
g フラグがないのでここで停止
## B2 C3
★ 結論: A1 が ## に置換され、残り B2C3 はそのまま → ##B2C3
LPIC-101 ｜ sed の s/// はデフォルトで最初のマッチだけ
5 / 10


# Page. 6

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

g フラグを付けたら「全部置換」
③ 詳しく②
sedのデフォルトは「最初の1回だけ」。g を付けると「行内の全マッチ」を置換する。
g なし（デフォルト）
g 付き（global）
s/[ABC][0-9]/##/
入力:
s/[ABC][0-9]/##/g
入力:
A1B2C3
A1B2C3
↓
↓
出力:
出力:
##B2C3
######
最初のA1だけ置換
A1・B2・C3 すべて置換
LPIC-101 ｜ sed の s/// はデフォルトで最初のマッチだけ
6 / 10


# Page. 7

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

③ 詳しく③
実機で確認（Ubuntu / RHEL 共通）
Terminal ― sed 置換を試す
# ★ 問題と同じ条件（g なし）
$ echo &#039;A1B2C3&#039; | sed &#039;s/[ABC][0-9]/##/&#039;
##B2C3
# g を付けると全部置換
$ echo &#039;A1B2C3&#039; | sed &#039;s/[ABC][0-9]/##/g&#039;
######
# 2回目だけ置換したい（2 は2つ目の意味）
$ echo &#039;A1B2C3&#039; | sed &#039;s/[ABC][0-9]/##/2&#039;
A1##C3
# 最後のマッチだけは -E 等と後方参照が必要（直接の記法はない）
LPIC-101 ｜ sed の s/// はデフォルトで最初のマッチだけ
7 / 10


# Page. 8

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

APPLY
原理原則で5択を斬る
#
コマンド
判定
理由
1
##B2C3
○ 正解
先頭 A1 が最初のマッチ。g なしなのでここで終了。正解
2
A1##C3
× 誤り
2番目のマッチ B2 を置換した結果。/2 フラグを付けたとき
3
A1B2##
× 誤り
最後のマッチに置換した結果。sed のデフォルト挙動ではない
4
######
× 誤り
全部置換した結果。g フラグが付いている場合の出力
5
A1B2C3
× 誤り
マッチしなかった場合の結果。実際はマッチする
→ 正解は 1番。sed の s/// は「デフォルトで最初の1回だけ」。
LPIC-101 ｜ sed の s/// はデフォルトで最初のマッチだけ
8 / 10


# Page. 9

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

ANSWER
正解 ― 最初のマッチだけ置換
正解 ①
##B2C3
A1 が最初のマッチ。g フラグなしでここで終了
フラグによる結果の違い（A1B2C3 に対して）
なし（デフォルト）
g（global）
2（2番目）
##B2C3
######
A1##C3
★ 今回の正解
LPIC-101 ｜ sed の s/// はデフォルトで最初のマッチだけ
9 / 10


# Page. 10

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

④ 原理原則・一言でまとめ
sed の s/// は
「各行・最初の1回だけ」がデフォルト。全部は g。
なし
g
2/3…
最初の1回
全部
N番目だけ
パターン [ABC][0-9] は「文字クラス2個」= 2文字にマッチ
面白きなき世を面白く ─ 石黒 友季子


