Manpages

名 前

ed, red − 行 指 向 の テ キ ス ト エ デ ィ タ

書 式

ed [−GVhs] [−p string] [file]

red [−GVhs] [−p string] [file]

説 明

ed は 、 行 指 向 の テ キ ス ト エ デ ィ タ で す 。 本 コ マ ン ド を 用 い る こ と で 、 テ キ ス ト フ ァ イ ル の 生 成 、 表 示 、 変 更 そ の 他 の 操 作 を 行 な う こ と が で き ま す 。 red は 制 限 付 き の ed で す 。 red で は 、 カ レ ン ト デ ィ レ ク ト リ の フ ァ イ ル の み を 編 集 で き 、 シ ェ ル コ マ ン ド の 実 行 は で き ま せ ん 。

file 引 数 を 指 定 し て 本 コ マ ン ド を 起 動 す る と 、 フ ァ イ ル file の コ ピ ー を エ デ ィ タ の バ ッ フ ァ に 読 み 込 み ま す 。 以 後 の 変 更 は そ の コ ピ ー に 対 し て 行 な わ れ 、 file で 指 定 し た フ ァ イ ル 自 身 が 直 接 変 更 さ れ る こ と は あ り ま せ ん 。 ed コ マ ン ド を 終 了 す る 際 、 ’w’ コ マ ン ド で 明 示 的 に セ ー ブ し な か っ た 変 更 点 は す べ て 失 わ れ ま す 。 編 集 は 、 コ マ ン ド モ ー ド と 入 力 モ ー ド の 2 つ の 異 な る モ ー ド を 使 い 分 け て 行 な い ま す 。 ed を 起 動 し た ら 、 ま ず コ マ ン ド モ ー ド に 入 り ま す 。 本 モ ー ド で は 、 標 準 入 力 か ら コ マ ン ド を 読 み 込 み 、 そ れ を 実 行 す る こ と で エ デ ィ タ バ ッ フ ァ の 内 容 操 作 を 行 な い ま す 。 典 型 的 な コ マ ン ド は 、 以 下 の よ う な も の で す 。 ,s/old/new/g こ れ は 、 編 集 し て い る テ キ ス ト フ ァ イ ル 中 に old と い う 文 字 列 が あ っ た ら 、 こ れ ら を す べ て 文 字 列 new に 置 き 換 え る コ マ ン ド で す 。

’a’ (append)、 ’i’ (insert)、 あ る い は ’c’ (change) と い っ た 入 力 コ マ ン ド が 入 力 さ れ た 場 合 、 ed は 入 力 モ ー ド に 移 行 し ま す 。 こ れ が 、 フ ァ イ ル に テ キ ス ト を 追 加 す る 主 た る 方 法 で す 。 こ の モ ー ド で は 、 コ マ ン ド を 実 行 す る こ と は で き ま せ ん 。 そ の か わ り 、 標 準 入 力 か ら 入 力 さ れ た デ ー タ は 、 直 接 エ デ ィ タ バ ッ フ ァ へ と 書 き 込 ま れ ま す 。 行 は 、 改 行 キ ャ ラ ク タ ま で の テ キ ス ト デ ー タ お よ び 、 最 後 の 改 行 キ ャ ラ ク タ を 含 む デ ー タ か ら 構 成 さ れ ま す 。 ピ リ オ ド 1 つ だ け (.) の 行 を 入 力 す る と 、 入 力 モ ー ド を 終 了 し ま す 。 す べ て の ed コ マ ン ド は 、 全 て の 行 も し く は 指 定 し た 範 囲 の 行 の 操 作 が 可 能 で す 。 例 え ば 、 ’d’ コ マ ン ド は 指 定 し た 行 を 削 除 し 、 ’m’ コ マ ン ド は 指 定 し た 行 を 移 動 し ま す 。 上 に 示 し た 例 の よ う に 、 置 換 に よ っ て あ る 行 の 一 部 分 の み を 変 更 す る こ と は 可 能 で す が 、 ’s’ コ マ ン ド は 、 一 度 に 全 部 の 行 に わ た っ て 変 更 を 行 な う こ と も 可 能 で す 。 一 般 的 に は 、 ed コ マ ン ド は 、 0 個 以 上 の 行 番 号 お よ び 、 そ れ に 連 な る 1 文 字 コ マ ン ド か ら 成 り 立 ち ま す 。 場 合 に よ っ て は 追 加 の パ ラ メ ー タ を も つ こ と も あ り ま す 。 い う な れ ば 、 コ マ ン ド は 以 下 の 構 造 を 持 ち ま す 。

[address [,address]]command[parameters] ア ド レ ス (行 番 号 ) は コ マ ン ド の 操 作 対 象 行 あ る い は 対 象 行 範 囲 を 示 し ま す 。 ア ド レ ス の 指 定 個 数 が 、 コ マ ン ド が 受 け 付 け 可 能 な 個 数 よ り も 少 な い 場 合 に は 、 デ フ ォ ル ト の ア ド レ ス が 採 用 さ れ ま す 。 オ プ シ ョ ン

−G 強 制 的 に 後 方 互 換 性 を 有 効 に し ま す 。 コ マ ン ド

’G’, ’V’, ’f’, ’l’,

’m’, ’t’, and ’!!’ に 影 響 が あ り ま す 。

−s 診 断 メ ッ セ ー ジ を 抑 制 し ま す 。 本 オ プ シ ョ ン は 、

ed の 入 力 が ス ク リ

プ ト に よ っ て 行 な わ れ る 場 合 に 有 効 で す 。

−p string コ マ ン ド プ ロ ン プ ト と し て 表 示 す る 文 字 列 を 指 定 し ま す 。 コ マ ン ド プ ロ ン プ ト は 、 コ マ ン ド モ ー ド で ’P’ コ マ ン ド を 実 行 す る こ と で 、 表 示 す る /し な い を 切 り 替 え る こ と が 可 能 で す 。

file 編 集 対 象 の フ ァ イ ル を 指 定 し ま す 。 フ ァ イ ル 名 の 先 頭 に 感 嘆 符

(!) が

付 加 さ れ て い た 場 合 、 そ の フ ァ イ ル 名 は シ ェ ル コ マ ン ド と し て 解 釈 さ れ ま す 。 こ の 場 合 、 編 集 対 象 と し て 読 み 込 ま れ る テ キ ス ト は 、 sh(1)file で 指 定 し た コ マ ン ド を 実 行 し た 結 果 、 標 準 出 力 に 出 力 さ れ る デ ー タ で す 。 先 頭 が 感 嘆 符 で 始 ま る フ ァ イ ル を 編 集 す る 場 合 に は 、 フ ァ イ ル 名 の 先 頭 に バ ッ ク ス ラ ッ シ ュ (\) を 付 加 し て 下 さ い 。 感 嘆 符 以 外 の 文 字 で 始 ま る フ ァ イ ル 名 に つ い て は 、 編 集 対 象 の フ ァ イ ル 名 は file と な り ま す 。 行 指 定 行 は 、 バ ッ フ ァ 内 の 行 番 号 で 表 現 さ れ ま す 。 ed現 在 行 を 管 理 し て お り 、 コ マ ン ド に 行 番 号 が 指 定 さ れ な い 場 合 は 、 現 在 行 が デ フ ォ ル ト 行 と し て 用 い ら れ ま す 。 フ ァ イ ル が 最 初 に 読 み 出 さ れ た 直 後 は 、 現 在 行 は フ ァ イ ル の 最 後 の 行 と な り ま す 。 一 般 的 に 、 現 在 行 は コ マ ン ド が 操 作 し た 最 後 の 行 と な り ま す 。 行 番 号 は 、 以 下 の 一 覧 の う ち 1 つ お よ び 、 補 助 的 に 付 加 さ れ る 相 対 行 番 号 (オ フ セ ッ ト ) か ら 構 成 さ れ ま す 。 相 対 行 番 号 は 、 任 意 の 数 字 の 組 み 合 わ せ 、 演 算 子 (+, )、 そ し て 空 白 文 字 を 含 み ま す 。 行 番 号 は 、 左 か ら 右 に 解 釈 さ れ 、 そ れ ら の 演 算 子 を 含 む 値 は 、 現 在 行 か ら の 相 対 行 番 号 と 解 釈 さ れ ま す 。 行 番 号 の 表 現 に 関 し て 上 記 の 規 則 が 適 用 さ れ る 中 で 、 行 番 号 0 (ゼ ロ ) に 関 し て は 、 例 外 的 な 扱 い が さ れ ま す 。 こ れ は 「 最 初 の 行 よ り 前 」 を 意 味 し 、 そ れ が 正 し い 意 味 を 持 つ 場 合 は 常 に 利 用 可 能 で す 。 行 範 囲 は 、 コ ン マ も し く は セ ミ コ ロ ン で 区 切 ら れ た 2 つ の ア ド レ ス で 示 さ れ ま す 。 最 初 に 指 定 さ れ る 行 番 号 は 、 2 番 目 に 指 定 さ れ る 行 番 号 を 超 え る 値 を 指 定 し て は い け ま せ ん 。 行 範 囲 指 定 で 行 番 号 が 1 つ し か 指 定 さ れ な か っ た 場 合 に は 、 2 番 目 に 指 定 さ れ る ア ド レ ス と し て 最 初 に 指 定 さ れ た ア ド レ ス が 設 定 さ れ ま す 。 こ こ で 3 個 以 上 の 行 番 号 が 指 定 さ れ る と 、 最 後 の 2 つ の 行 番 号 で 決 定 さ れ る 範 囲 が コ マ ン ド 実 行 対 象 に な り ま す 。 行 番 号 の 指 定 を 1 つ だ け し か 想 定 し て い な い コ マ ン ド の 場 合 、 最 後 の 1 つ の 行 番 号 の 行 が コ マ ン ド 実 行 対 象 と な り ま す 。 コ ン マ で 区 切 ら れ た 各 行 番 号 は 、 現 在 行 か ら の 相 対 行 を 指 し 示 し ま す 。 セ ミ コ ロ ン で 区 切 ら れ て い る 場 合 は 、 範 囲 の 始 め の 行 は 現 在 行 が 設 定 さ れ 、 範 囲 の 終 り は 始 め の 行 か ら の 相 対 行 で 表 わ さ れ ま す 。 行 番 号 の 指 定 に は 、 以 下 の シ ン ボ ル が 使 用 可 能 で す 。

. バ ッ フ ァ 中 の 現 在 行 を 表 し ま す 。

$ バ ッ フ ァ 中 の 最 終 行 を 表 し ま す 。

n バ ッ フ ァ 内 の

n 番 目 の 行 を 表 し ま す 。 n[0,$] の 間 で す 。

1 行 前 の 行 で す 。 相 対 行 指 定 −1 と 同 等 で あ り 、 複 数 指 定 す る こ と で 効 果 を 累 積 す る こ と が 可 能 で す 。

^n

n 行 前 の 行 を 表 し ま す 。 n は 、 負 で な い 整 数 で す 。

+

次 の 行 を 表 し ま す 。 こ れ は 、 +1 と 同 様 で あ り 、 と 同 様 の 累 積 的 指 定 が 可 能 で す 。

whitespace n

+n

n 行 後 ろ の 行 を 表 し ま す 。 n は 、 負 で な い 整 数 で す 。 n の 前 に whitespace (空 白 文 字 ) を 付 加 し て 指 定 し た 場 合 も +n と 解 釈 さ れ ま す 。

,

バ ッ フ ァ の 最 初 か ら 最 後 ま で を 表 し ま す 。 こ れ は 1,$ と 指 定 し た 場 合 と 同 等 で す 。

;

バ ッ フ ァ 中 の 現 在 行 か ら 最 後 の 行 ま で を 表 し ま す 。 こ れ は 、 .,$ と 指 定 し た 場 合 と 同 等 で す 。

/re/

指 定 さ れ た 正 規 表 現 re を 含 む 、 (現 在 行 よ り も 後 ろ の ) 次 の 行 を 表 し ま す 。 必 要 で あ れ ば 、 文 字 列 検 索 は テ キ ス ト 先 頭 に 折 り 返 し 、 現 在 行 に 達 す る ま で 検 索 を 行 な い ま す 。 // は 、 最 後 に 行 な っ た 検 索 を 繰 り 返 し ま す 。

?re?

指 定 し た 正 規 表 現 re を 含 む 、 現 在 行 よ り 前 の 行 を 表 し ま す 。 必 要 で あ れ ば 、 文 字 列 検 索 は テ キ ス ト の 最 後 に 折 り 返 し 、 現 在 行 に 達 す る ま で 検 索 を 行 な い ま す 。 ?? は 、 最 後 に 行 な っ た 検 索 を 繰 り 返 し ま す 。
lc

’k’ (mark) コ マ ン ド で マ ー ク を つ け た 行 を 表 し ま す 。 こ こ で lc は 英 小 文 字 1 文 字 で す 。

正 規 表 現 正 規 表 現 は テ キ ス ト を 選 択 す る 際 に 用 い る パ タ ー ン で す 。 例 え ば 次 の ed コ マ ン ド

g/string/ は string を 含 む 全 て の 行 を 表 示 し ま す 。 正 規 表 現 は ’s’ コ マ ン ド で 古 い テ キ ス ト を 新 し い テ キ ス ト で 置 き 換 え る 際 に も 用 い ら れ ま す 。 文 字 リ テ ラ ル を 指 定 す る の に 加 え 、 正 規 表 現 は 文 字 列 の ク ラ ス を 表 現 す る こ と が で き ま す 。 こ の よ う に し て 表 現 さ れ た 文 字 列 は 、 そ れ に 対 応 す る 正 規 表 現 に 「 マ ッ チ す る 」 と 言 い ま す 。 あ る 正 規 表 現 が 一 つ の 行 の 中 の 複 数 の 文 字 列 に マ ッ チ す る 場 合 、 マ ッ チ す る 部 分 の う ち 最 も 左 に あ っ て 最 も 長 い も の が 選 択 さ れ ま す 。 正 規 表 現 を 組 み 立 て る 際 に は 以 下 の シ ン ボ ル が 用 い ら れ ま す :

c 以 下 に 挙 げ る も の を 除 く 任 意 の 文 字

c は 、 そ の 文 字 自 身 に マ ッ チ し ま

す 。 こ の よ う な 文 字 に は ’{’, ’}’, ’(’, ’)’, ’<’, ’>’ が 含 ま れ ま す 。

\c バ ッ ク ス ラ ッ シ ュ で エ ス ケ ー プ し た 文 字

c は 、 そ の 文 字 自 身 に マ ッ チ

し ま す 。 た だ し ’{’, ’}’, ’(’, ’)’, ’<’, ’>’ を 除 き ま す 。

. 任 意 の 一 文 字 に マ ッ チ し ま す 。

[char−class] 文 字 ク ラ ス char−class に 含 ま れ る 任 意 の 一 文 字 に マ ッ チ し ま す 。 文 字 ク ラ ス char−class に ’]’ を 含 め る に は 、 文 字 ’]’ を 最 初 の 文 字 に 指 定 し ま す 。 文 字 の 範 囲 を 指 定 す る に は 、 範 囲 の 両 端 の 文 字 の 間 を ’−’ で つ な ぎ ま す 。 例 え ば ’a−z’ は 小 文 字 全 体 を 表 し ま す 。 以 下 の よ う な リ テ ラ ル 表 記 も 、 文 字 集 合 を 指 定 す る た め に 文 字 ク ラ ス char−class で 使 用 す る こ と が で き ま す :   

[:alnum:]  [:cntrl:]  [:lower:]  [:space:]   
[:alpha:]  [:digit:]  [:print:]  [:upper:]   
[:blank:]  [:graph:]  [:punct:]  [:xdigit:] 文 字 ク ラ ス char−class の 最 初 あ る い は 最 後 の 文 字 と し て ’−’ が 用 い ら れ る と 、 そ れ は そ の 文 字 自 身 に マ ッ チ し ま す 。 文 字 ク ラ ス char−class 中 の こ れ 以 外 の 文 字 は 全 て 、 そ れ ら 自 身 に マ ッ チ し ま す 。 以 下 の 形 式 の 文 字 ク ラ ス char−class の パ タ ー ン   

[.col−elm.] と   [=col−elm=] は locale(5) に 沿 っ て 解 釈 さ れ ま す (現 在 の と こ ろ サ ポ ー ト さ れ ま せ ん )。 こ こ で col−elmcollating element で す 。 詳 し い 説 明 は regex(3) を 参 照 し て 下 さ い 。

[^char−class] 文 字 ク ラ ス char−class に 含 ま れ な い 、 改 行 以 外 の 任 意 の 一 文 字 に マ ッ チ し ま す 。 文 字 ク ラ ス char−class は 上 で 定 義 し て い ま す 。

^

’^’ が 正 規 表 現 の 最 初 の 文 字 で あ る 場 合 、 そ の 正 規 表 現 は 行 頭 で の み マ ッ チ し ま す 。 そ れ 以 外 の 場 合 、 ’^’ は そ れ 自 身 に マ ッ チ し ま す 。

$

’$’ が 正 規 表 現 の 最 後 の 文 字 で あ る 場 合 、 そ の 正 規 表 現 は 行 末 で の み マ ッ チ し ま す 。 そ れ 以 外 の 場 合 、 ’$’ は そ れ 自 身 に マ ッ チ し ま す 。

\(re\)

部 分 式 (subexpression) re を 定 義 し ま す 。 部 分 式 は ネ ス ト で き ま す 。 こ れ 以 降 、 ’\n’ の 形 式 の 後 方 参 照 は 、 n 番 目 の 部 分 式 に マ ッ チ し た テ キ ス ト に 展 開 さ れ ま す (n は [1,9] の 範 囲 の 数 )。 例 え ば 、 正 規 表 現 ’\(a.c\)\1’ は 、 同 じ 文 字 列 が 隣 接 し て い る よ う な 任 意 の 文 字 列 に マ ッ チ し ま す 。 部 分 式 は 左 側 の デ リ ミ タ か ら 順 に 番 号 が 振 ら れ ま す 。

*

直 前 に あ る 単 一 文 字 の 正 規 表 現 あ る い は そ の 部 分 式 の ゼ ロ 回 以 上 の 繰 り 返 し に マ ッ チ し ま す 。 * が 正 規 表 現 あ る い は そ の 部 分 式 の 最 初 の 文 字 と し て 用 い ら れ た 場 合 、 * は そ の 文 字 自 身 に マ ッ チ し ま す 。 * 演 算 子 は 時 に 予 期 し な い 結 果 を も た ら す こ と が あ り ま す 。 例 え ば 、 正 規 表 現 ’b*’ は 文 字 列 ’abbb’ の 先 頭 に マ ッ チ し ま す (部 分 文 字 列 ’bbb’ で は あ り ま せ ん )。 こ れ は ヌ ル へ の マ ッ チ が 最 も 左 に あ る マ ッ チ だ か ら で す 。

\{n,m\}
\{n,\}
\{n\} 直 前 に あ る 単 一 文 字 の 正 規 表 現 あ る い は そ の 部 分 式 の 、 n 回 以 上 m 回 以 下 の 繰 り 返 し に マ ッ チ し ま す 。 m が 省 略 さ れ た 場 合 、 n 回 以 上 の 繰 り 返 し に マ ッ チ し ま す 。 さ ら に コ ン マ も 省 略 さ れ た 場 合 、 ち ょ う ど n 回 の 繰 り 返 し に の み マ ッ チ し ま す 。 こ の 表 現 が 正 規 表 現 や 部 分 式 の 先 頭 に 登 場 し た 場 合 は 、 リ テ ラ ル と し て 解 釈 さ れ ま す (す な わ ち 、 正 規 表 現 ’\{2\}’ は 文 字 列 ’{2}’ な ど に マ ッ チ し ま す 。

\<
\> こ れ に 続 く 単 一 文 字 の 正 規 表 現 あ る い は そ の 部 分 式 が 、 ワ ー ド の 先 頭 (\<) や 末 尾 (\>) で の み マ ッ チ す る よ う に し ま す 。 ワ ー ド と は ASCII で 英 数 字 文 字 が 続 く 文 字 列 で 最 長 の も の で す (ア ン ダ ー ス コ ア (_) も 文 字 列 に 含 ま れ ま す )。

以 下 の 拡 張 演 算 子 は 、 以 前 か ら の ed の 書 式 と 区 別 す る た め 、 バ ッ ク ス ラ ッ シ ュ (\) か ら 始 ま り ま す 。

\`

無 条 件 に 、 行 の 先 頭

(\`) や 行 の 末 尾 (\´) に マ ッ チ し ま す 。

\?

1 文 字 の 正 規 表 現 か 直 前 の 部 分 式 が 0 個 か 1 個 あ る 場 合 に マ ッ チ し ま す 。 例 え ば 、 正 規 表 現 ’a[bd]\?c’ は 、 文 字 列 ’abc’, ’adc’, ’ac’ に マ ッ チ し ま す 。 \? が 正 規 表 現 か 部 分 式 の 先 頭 に 登 場 し た 場 合 は 、 リ テ ラ ル ’?’ に マ ッ チ し ま す 。

\+

1 文 字 の 正 規 表 現 ま た は 直 前 の 部 分 式 の 1 回 以 上 の 繰 り 返 し に マ ッ チ し ま す 。 正 規 表 現 ’a\+’ は ’aa*’ の 短 い 書 き 方 で す 。 \+ が 正 規 表 現 や 部 分 式 の 先 頭 に 登 場 し た 場 合 は 、 リ テ ラ ル ’+’ に マ ッ チ し ま す 。

\b

ワ ー ド の 先 頭 や 末 尾 に マ ッ チ し ま す (マ ッ チ す る の は 空 文 字 列 で す )。 正 規 表 現 ’\bhello\b’ は ’\<hello\>’ と 同 じ で す 。 但 し 、 ’\b\b’ は 有 効 な 正 規 表 現 で す が 、 ’\<\>’ は そ う で は あ り ま せ ん 。

\B

ワ ー ド 内 に マ ッ チ し ま す (マ ッ チ す る の は 空 文 字 列 で す )。
\w ワ ー ド を 構 成 す る 任 意 の 文

字 に マ ッ チ し ま す 。

\W ワ ー ド を 構 成 す る 文 字 以 外 の 任 意 の 文 字 に マ ッ チ し ま す 。 コ マ ン ド 全 て の

ed コ マ ン ド は 、 1 文 字 か ら な り ま す が 、 追 加 パ ラ メ ー タ が 必 要 な コ マ ン ド も あ り ま す 。 コ マ ン ド の パ ラ メ ー タ が 複 数 の 行 に わ た る 場 合 に は 、 そ の パ ラ メ ー タ を 含 め た コ マ ン ド の 終 り を 含 む 行 を 除 き 、 行 末 に バ ッ ク ス ラ ッ シ ュ (\) を 付 加 し て 下 さ い 。 一 般 的 に は 、 1 行 ご と に 1 コ マ ン ド を 入 れ る こ と が 許 さ れ て い ま す 。 し か し な が ら 、 ほ と ん ど の コ マ ン ド は 、 コ マ ン ド 実 行 を 行 な っ た 後 の デ ー タ 更 新 そ の 他 を 確 認 す る た め に 、 ’p’ (print), ’l’ (list), ’n’ (enumerate) の よ う な 表 示 系 の コ マ ン ド を 同 時 に 指 定 で き ま す 。 イ ン タ ラ プ ト (一 般 的 に は ^C) を 入 力 す る こ と で 、 現 在 実 行 し て い る コ マ ン ド を 強 制 終 了 し 、 コ マ ン ド モ ー ド に 戻 す こ と が で き ま す 。

ed は 、 以 下 の コ マ ン ド を 使 用 で き ま す 。 コ マ ン ド 実 行 時 に 何 の 指 定 も な い 場 合 の デ フ ォ ル ト の 行 番 号 も し く は 行 範 囲 が 括 弧 内 に 示 さ れ て い ま す 。

(.)a 指 定 し た 行 の 後 に テ キ ス ト を 追 加 し ま す 。 行 番 号

0 (ゼ ロ ) も 指 定 で

き ま す 。 テ キ ス ト は 入 力 モ ー ド で 入 力 さ れ て い き ま す 。 現 在 行 番 号 は 、 入 力 さ れ た 最 後 の 行 に 設 定 さ れ ま す 。

(.,.)c バ ッ フ ァ 内 の 指 定 し た 行 を 変 更 し ま す 。 指 定 し た 行 の デ ー タ は 、 バ ッ フ ァ か ら 消 去 さ れ 、 そ こ に 対 し て テ キ ス ト デ ー タ を 入 力 す る よ う に な り ま す 。 テ キ ス ト は 入 力 モ ー ド で 入 力 さ れ て い き ま す 。 現 在 行 番 号 は 、 入 力 し た 最 後 の 行 に 設 定 さ れ ま す 。

(.,.)d 指 定 し た 範 囲 を バ ッ フ ァ か ら 削 除 し ま す 。 削 除 し た 範 囲 の 後 に 行 が 続 い て い る 場 合 、 現 在 行 番 号 は 、 そ の 行 に 設 定 さ れ ま す 。 そ う で な い 場 合 に は 、 現 在 行 番 号 は 、 削 除 さ れ た 範 囲 の 前 の 行 に 設 定 さ れ ま す 。

file

file を 編 集 し 、 デ フ ォ ル ト の フ ァ イ ル 名 を 設 定 し ま す 。 も し file が 指 定 さ れ な か っ た 場 合 に は 、 デ フ ォ ル ト の フ ァ イ ル 名 が 使 用 さ れ ま す 。 本 コ マ ン ド 実 行 時 に 、 そ れ ま で 別 の フ ァ イ ル を 編 集 し て い た 場 合 に は 、 そ の 内 容 は す べ て 消 去 さ れ 、 新 し い フ ァ イ ル が 読 み 込 ま れ ま す 。 現 在 行 番 号 は 、 入 力 さ れ た 最 後 の 行 に 設 定 さ れ ま す 。

e !command

!command で 指 定 さ れ た コ マ ン ド を 実 行 し 、 そ の 結 果 と し て 標 準 出 力 へ 出 力 さ れ た デ ー タ を 編 集 し ま す (後 述 す る !command を 参 照 し て 下 さ い )。 デ フ ォ ル ト の フ ァ イ ル 名 は 変 更 さ れ ま せ ん 。 command の 出 力 が 読 み 込 ま れ る 前 に 、 バ ッ フ ァ 内 に 存 在 し た 行 は す べ て 消 去 さ れ ま す 。 現 在 行 番 号 は 、 入 力 さ れ た 最 後 の 行 に 設 定 さ れ ま す 。

file 無 条 件 で

file で 指 定 し た フ ァ イ ル を 読 み 込 み 、 編 集 し ま す 。 e コ マ

ン ド と 動 作 は 似 て い ま す が 、 す で に バ ッ フ ァ 上 の デ ー タ に 変 更 が 加 え ら れ て い る 場 合 で も 、 未 書 き 込 み の 変 更 を 警 告 を 出 さ ず に 捨 て て し ま う 点 が 異 な り ま す 。 現 在 行 番 号 は 、 入 力 さ れ た 最 後 の 行 に 設 定 さ れ ま す 。

file デ フ ォ ル ト フ ァ イ ル 名 を

file に 設 定 し ま す 。 file 名 が 指 定 さ れ な

い 場 合 に は 、 デ フ ォ ル ト フ ァ イ ル 名 が 表 示 さ れ ま す 。

(1,$)g/re/command−list

command−list で 指 定 さ れ た コ マ ン ド を 、 指 定 し た 正 規 表 現 re に 一 致 す る 各 行 に 対 し て 実 行 し ま す 。 現 在 行 番 号 は 、 command−list で 指 定 さ れ た コ マ ン ド が 実 行 さ れ る 前 に 、 指 定 し た 正 規 表 現 に 一 致 し た 行 に 設 定 さ れ ま す 。 ’g’ コ マ ン ド が 終 了 し た 場 合 、 現 在 行 番 号 は 最 後 に command−list 実 行 の 影 響 を 受 け た 行 に 設 定 さ れ ま す 。

command−list で 指 定 さ れ る コ マ ン ド は 、 1 行 ご と に 1 つ ず つ 書 か れ る 必 要 が あ り ま す 。 各 コ マ ン ド 行 の 終 り に は 、 一 番 最 後 の コ マ ン ド 行 を 除 い て は バ ッ ク ス ラ ッ シ ュ (\) を 記 述 す る 必 要 が あ り ま す 。 コ マ ン ド ’g’, ’G’, ’v’, ’V’ を 除 く す べ て の コ マ ン ド を 指 定 可 能 で す 。 command−list 中 の 空 行 は 、 ’p’ コ マ ン ド と 同 等 に 扱 わ れ ま す 。

(1,$)G/re/ 指 定 し た 正 規 表 現 re に 一 致 し た 行 に 対 し て 、 対 話 編 集 を 行 な い ま す 。 指 定 し た 正 規 表 現 に 一 致 す る 文 字 列 を 含 む 行 が あ る と 、 そ の 行 を 表 示 し 、 現 在 行 番 号 を 設 定 し ま す 。 そ し て 、 ユ ー ザ に command−list の 入 力 を 促 し ま す 。 ’G’ コ マ ン ド が 終 了 し た 場 合 、 現 在 行 番 号 は 、 command−list 実 行 の 影 響 を 受 け た 最 後 の 行 に 設 定 さ れ ま す 。

command−list の 記 述 形 式 は 、 g コ マ ン ド で 指 定 す る も の と 同 じ で す 。 改 行 の み の 場 合 は 、 コ マ ン ド 実 行 を し な い (ヌ ル コ マ ン ド リ ス ト を 指 定 し た ) も の と み な さ れ ま す 。 ’&’ 文 字 の み を 入 力 し た 場 合 に は 、 直 前 に 実 行 し た (ヌ ル コ マ ン ド リ ス ト で は な い ) コ マ ン ド を 再 実 行 し ま す 。

H エ ラ ー メ ッ セ ー ジ の 出 力 の 有 無 を 切 り 替 え ま す 。 デ フ ォ ル ト で は 、 エ ラ ー メ ッ セ ー ジ は 出 力 さ れ ま せ ん 。

ed ス ク リ プ ト を 作 成 す る 場 合 、 ス ク リ プ ト の デ バ ッ グ の た め に 、 本 コ マ ン ド を 最 初 に 実 行 す る こ と を お す す め し ま す 。

h 最 後 に 表 示 さ れ た エ ラ ー メ ッ セ ー ジ を 表 示 し ま す 。

(.)i 編 集 バ ッ フ ァ 中 の 現 在 行 の 前 に 、 テ キ ス ト を 挿 入 し ま す 。 テ キ ス ト は 入 力 モ ー ド で 入 力 さ れ て い き ま す 。 現 在 行 番 号 は 、 入 力 さ れ た 最 後 の 行 に 設 定 さ れ ま す 。

(.,.+1)j 指 定 し た 範 囲 の 行 を 1 行 に 連 結 し ま す 。 指 定 し た 行 は バ ッ フ ァ か ら 削 除 さ れ 、 そ の 行 の 内 容 を 含 む 1 行 に 置 き 換 え ら れ ま す 。 現 在 行 番 号 は 、 置 き 換 え ら れ た 行 に 設 定 さ れ ま す 。

(.)klc 行 に 、 英 小 文 字

lc で 指 定 し た マ ー ク を つ け ま す 。 そ の 後 、 マ ー ク を

つ け ら れ た 行 は 、 コ マ ン ド 中 で ’lc (つ ま り 、 シ ン グ ル ク ォ ー ト と 小 文 字 lc) と し て 指 定 で き る よ う に な り ま す 。 マ ー ク は 、 そ の 行 が 削 除 さ れ る か も し く は 変 更 さ れ る か し な い 限 り 、 消 え る こ と は あ り ま せ ん 。

(.,.)l 指 定 し た 範 囲 の 行 の 内 容 を 見 や す く 表 示 し ま す 。 端 末 か ら 起 動 さ れ た 場 合 、 各 ペ ー ジ の 終 わ り で 表 示 を 一 時 停 止 し 、 改 行 が 入 力 さ れ る ま で 待 ち ま す 。 現 在 行 番 号 は 、 表 示 さ れ た 最 後 の 行 に 設 定 さ れ ま す 。

(.,.)m(.) 指 定 し た 範 囲 の 行 を バ ッ フ ァ 内 で 移 動 し ま す 。 指 定 し た 行 は 、 コ マ ン ド の 右 辺 で 指 定 し た 行 の 後 ろ に 移 動 さ れ ま す 。 移 動 先 の 行 と し て は 、 0 (ゼ ロ ) が 指 定 可 能 で す 。 現 在 行 番 号 は 、 移 動 さ れ た 最 後 の 行 の 移 動 後 の 行 に 設 定 さ れ ま す 。

(.,.)n 指 定 し た 行 の 内 容 を 、 行 番 号 つ き で 表 示 し ま す 。 現 在 行 番 号 は 、 表 示 さ れ た 最 後 の 行 に 設 定 さ れ ま す 。

(.,.)p 指 定 し た 範 囲 の 行 の 内 容 を 表 示 し ま す 。 端 末 か ら 起 動 さ れ た 場 合 、

ed は 各 ペ ー ジ の 終 わ り で 表 示 を 一 時 停 止 し 、 改 行 が 入 力 さ れ る ま で 待 ち ま す 。 現 在 行 番 号 は 、 表 示 さ れ た 最 後 の 行 に 設 定 さ れ ま す 。

P コ マ ン ド プ ロ ン プ ト 表 示 の 有 無 を 切 り 替 え ま す 。 コ マ ン ド 起 動 時 の オ プ シ ョ ン

−p string で プ ロ ン プ ト が 指 定 さ れ て い な け れ ば 、 コ マ ン ド プ ロ ン プ ト の 表 示 は デ フ ォ ル ト で オ フ に な っ て い ま す 。

q

ed を 終 了 し ま す 。

Q

無 条 件 に ed を 終 了 し ま す 。 こ の コ マ ン ド は q コ マ ン ド と 似 て い ま す が 、 ま だ フ ァ イ ル に 書 き 出 さ れ て い な い 変 更 が あ っ て も 警 告 せ ず に 終 了 す る 点 が 異 な り ま す 。

($)r file

file で 指 定 さ れ た フ ァ イ ル を 、 指 定 し た 行 の 後 ろ に 読 み 込 み ま す 。 file が 指 定 さ れ な い 場 合 、 デ フ ォ ル ト の フ ァ イ ル 名 が 読 み 込 み に 使 用 さ れ ま す 。 こ の コ マ ン ド に 先 だ っ て デ フ ォ ル ト の フ ァ イ ル 名 が 設 定 さ れ て い な い 場 合 、 デ フ ォ ル ト の フ ァ イ ル 名 に は 、 file で 指 定 さ れ た も の が 設 定 さ れ ま す 。 そ れ 以 外 の 場 合 、 デ フ ォ ル ト の フ ァ イ ル 名 は 変 更 さ れ ま せ ん 。 現 在 行 番 号 は 、 読 み 込 ま れ た フ ァ イ ル の 最 後 の 行 に 設 定 さ れ ま す 。

($)r !command

command で 指 定 さ れ た コ マ ン ド を 実 行 し 、 そ の 結 果 と し て 標 準 出 力 へ 出 力 さ れ た デ ー タ を 指 定 し た 行 の 後 ろ に 読 み 込 み ま す (後 述 す る ! command を 参 照 し て 下 さ い )。 デ フ ォ ル ト の フ ァ イ ル 名 は 変 更 さ れ ま せ ん 。 現 在 行 番 号 は 、 読 み 込 ま れ た 最 後 の 行 の 行 番 号 に 設 定 さ れ ま す 。

(.,.)s/re/replacement/

(.,.)s/re/replacement/g

(.,.)s/re/replacement/n 指 定 し た 行 の テ キ ス ト 中 の 、 正 規 表 現 re に 一 致 す る 文 字 列 を 、 文 字 列 replacement に 置 き 換 え ま す 。 デ フ ォ ル ト で は 、 そ れ ぞ れ の 行 で 最 初 に 一 致 し た 文 字 列 の み を 置 き 換 え ま す 。 ’g’ (global) サ フ ィ ッ ク ス が 指 定 さ れ た 場 合 、 一 致 し た 文 字 列 は す べ て 置 き 換 え ら れ ま す 。 ’n’ サ フ ィ ッ ク ス (’n’ は 正 の 整 数 ) が 指 定 さ れ た 場 合 、 ’n’ 回 目 に 一 致 し た 文 字 列 だ け を 置 き 換 え ま す 。 指 定 し た 範 囲 で 一 度 も 文 字 列 の 置 換 が 起 こ ら な か っ た 場 合 、 エ ラ ー と み な さ れ ま す 。 現 在 行 番 号 は 、 最 後 に 置 換 が 発 生 し た 行 に 設 定 さ れ ま す 。

re お よ び replacement は 、 ス ペ ー ス 、 改 行 、 下 記 の ’s’ コ マ ン ド で 使 用 さ れ る キ ャ ラ ク タ 以 外 の す べ て の キ ャ ラ ク タ を 用 い て 区 切 る こ と が 可 能 で す 。 最 後 の デ リ ミ タ の う ち 1 つ か 2 つ が 省 略 さ れ た 場 合 、 最 後 に 文 字 列 置 換 が 発 生 し た 行 は 、 ’p’ コ マ ン ド が 指 定 さ れ た 場 合 と 同 様 に 表 示 さ れ ま す 。

replacement 中 の エ ス ケ ー プ さ れ て い な い ’&’ は 、 一 致 し た 文 字 列 と 置 き 換 え ら れ ま す 。 キ ャ ラ ク タ シ ー ケ ン ス ’\m’ (’m’ は [1,9] の 範 囲 の 整 数 で す ) は 、 一 致 し た 文 字 列 の ’m’ 番 目 の 後 方 参 照 で 置 き 換 え ら れ ま す 。 replacement の 中 に 入 る 文 字 が ’%’ の み だ っ た 場 合 、 最 後 に 行 な っ た 置 換 の replacement が 使 用 さ れ ま す 。 改 行 を replacement に 指 定 し た い 場 合 は 、 バ ッ ク ス ラ ッ シ ュ を 用 い て エ ス ケ ー プ す れ ば 可 能 で す 。

(.,.)s

最 後 の 置 換 を 繰 り 返 し ま す 。 こ の 形 式 の

’s’ コ マ ン ド に は 、 回 数 を 示 す サ フ ィ ッ ク ス ’n’ と 、 文 字 ’r’, ’g’, ’p’ の 任 意 の 組 み 合 わ せ を 指 定 で き ま す 。 ’n’ が 指 定 さ れ る と 、 ’n’ 回 目 に 一 致 し た 文 字 列 だ け が 置 換 さ れ ま す 。 ’r’ サ フ ィ ッ ク ス が 指 定 さ れ る と 、 最 後 の 置 換 が 発 生 し た 文 字 列 の 変 わ り に 、 最 後 に 指 定 し た 正 規 表 現 が 使 用 さ れ ま す 。 ’g’ サ フ ィ ッ ク ス は 、 最 後 の 置 換 で 用 い た グ ロ ー バ ル サ フ ィ ッ ク ス の 使 用 の 有 効 /無 効 を 切 り 替 え ま す 。 ’p’ サ フ ィ ッ ク ス は 、 最 後 の 置 換 に 指 定 さ れ た プ リ ン ト サ フ ィ ッ ク ス を 反 転 し ま す 。 現 在 行 番 号 は 、 最 後 に 置 換 が 発 生 し た 行 に 設 定 さ れ ま す 。

(.,.)t(.) 指 定 し た 範 囲 の 行 を 、 コ マ ン ド 文 字 の 右 辺 に 指 定 し た 行 番 号 の 後 に コ ピ ー (つ ま り 転 送 ) し ま す 。 コ ピ ー 先 の 行 番 号 と し て は 、 ’0’ (ゼ ロ ) の 指 定 が 許 さ れ て い ま す 。 現 在 行 番 号 は 、 コ ピ ー し た 一 番 最 後 の 行 の 行 番 号 に 設 定 さ れ ま す 。

u 最 後 に 実 行 し た コ マ ン ド の 実 行 結 果 を 取 り 消 し 、 現 在 行 番 号 を 、 取 り 消 し た い コ マ ン ド が 実 行 さ れ る 前 の も の に 戻 し ま す 。 グ ロ ー バ ル コ マ ン ド で あ る

’g’, ’G’, ’v’, ’V’ に つ い て は 、 そ の 改 変 は 1 コ マ ン ド で 行 な わ れ た と し て 扱 い ま す 。 ’u’ は 自 分 自 身 の 動 作 を 取 り 消 す こ と も で き ま す 。
(1,$)v/re/command−list 指 定 し た 範 囲 の 行 の う ち 、 指 定 し た 正 規 表 現 re と 一 致 す る 文 字 列 が 含 ま れ て い な い 行 に つ い て 、 command−list で 指 定 し た コ マ ン ド を 実 行 し ま す 。 こ れ は ’g’ コ マ ン ド に 動 作 が 似 て い ま す 。
(1,$)V/re/ 指 定 し た 範 囲 の 行 の う ち 、 指 定 し た 正 規 表 現 re に 一 致 す る 文 字 列 が 含 ま れ て い な い 行 に つ い て 、 対 話 編 集 を 行 な い ま す 。 こ れ は ’G’ コ マ ン ド に 動 作 が 似 て い ま す 。
(1,$)w file 指 定 し た 範 囲 の 行 を 、 file で 指 定 し た フ ァ イ ル に 書 き 出 し ま す 。 そ れ ま で file に 格 納 さ れ て い た 内 容 は 、 警 告 な し に 消 去 さ れ ま す 。 デ フ ォ ル ト フ ァ イ ル 名 が 設 定 さ れ て い な い 場 合 、 デ フ ォ ル ト フ ァ イ ル 名 は file に 設 定 さ れ ま す 。 そ れ 以 外 の 場 合 で は 、 デ フ ォ ル ト フ ァ イ ル 名 は 変 更 さ れ ま せ ん 。 フ ァ イ ル 名 が 指 定 さ れ な か っ た 場 合 に は 、 デ フ ォ ル ト フ ァ イ ル 名 が 使 用 さ れ ま す 。 現 在 行 番 号 は 変 更 さ れ ま せ ん 。
(1,$)wq file 指 定 し た 範 囲 の 行 を file で 指 定 し た フ ァ イ ル に 書 き 出 し 、 ’q’ コ マ ン ド を 実 行 し ま す 。
(1,$)w !command 指 定 し た 範 囲 の 行 の 内 容 を !command の 標 準 入 力 に 書 き 出 し ま す (’!command’ に つ い て は 、 以 下 の 説 明 を 参 照 し て 下 さ い )。 デ フ ォ ル ト フ ァ イ ル 名 お よ び 現 在 行 番 号 は 変 更 さ れ ま せ ん 。
(1,$)W file 指 定 し た 範 囲 の 行 の 内 容 を file で 指 定 し た フ ァ イ ル の 後 ろ に 追 加 書 き 込 み し ま す 。 ’w’ コ マ ン ド と 似 て い ま す が 、 指 定 し た フ ァ イ ル に そ れ ま で 格 納 さ れ て い た 内 容 が な く な る こ と は あ り ま せ ん 。 現 在 行 番 号 は 変 更 さ れ ま せ ん 。

(.)x カ ッ ト バ ッ フ ァ の 内 容 を 指 定 さ れ た 行 の 後 ろ に コ ピ ー

(挿 入 ) し ま

す 。 現 在 行 番 号 は 最 後 に コ ピ ー が 行 わ れ た 行 に な り ま す 。

(.,.)y 指 定 し た 範 囲 の 行 の 内 容 を カ ッ ト バ ッ フ ァ に コ ピ ー

(yank) し ま す 。

カ ッ ト バ ッ フ ァ の 内 容 は 、 こ れ 以 降 に コ マ ン ド ’y’, ’s’, ’j’, ’d’, ’c’ を 実 行 す る と 上 書 き さ れ ま す 。 現 在 行 番 号 は 変 更 さ れ ま せ ん 。

(.+1)zn 指 定 し た 行 か ら 一 度 に

n 行 だ け ス ク ロ ー ル し ま す 。 n が 指 定 さ れ な

い 場 合 に は 、 現 在 の ウ ィ ン ド ウ サ イ ズ だ け ス ク ロ ー ル し ま す 。 現 在 行 番 号 は 、 最 後 に 表 示 し た 行 の 行 番 号 に 設 定 さ れ ま す 。

!command

command で 指 定 し た コ マ ン ド を 、 sh(1) を 用 い て 実 行 し ま す 。 command の 最 初 の 文 字 が ’!’の 場 合 に は 、 そ の 文 字 は 直 前 に !command で 実 行 し た コ マ ン ド 文 字 列 が 格 納 さ れ ま す 。 command 文 字 列 を バ ッ ク ス ラ ッ シ ュ (\) で エ ス ケ ー プ し た 場 合 に は 、 ed は 処 理 を 行 な い ま せ ん 。 し か し 、 エ ス ケ ー プ さ れ な い ’%’ 文 字 が あ っ た 場 合 に は 、 そ の 文 字 列 は デ フ ォ ル ト フ ァ イ ル 名 に 置 き 換 え ら れ ま す 。 シ ェ ル が コ マ ン ド 実 行 か ら 戻 っ て き た 場 合 に は 、 ’!’ が 標 準 出 力 に 出 力 さ れ ま す 。 現 在 行 番 号 は 変 更 さ れ ま せ ん 。

(.,.)# コ メ ン ト を 開 始 し ま す 。 改 行 ま で の 残 り の 行 は 無 視 さ れ ま す 。 行 番 号 と そ の 直 後 に セ ミ コ ロ ン を 指 定 し た 場 合 、 現 在 行 番 号 は 指 定 さ れ た 行 番 号 に 設 定 さ れ ま す 。 そ れ 以 外 の 場 合 、 現 在 行 番 号 は 変 更 さ れ ま せ ん 。

($)= 指 定 さ れ た 行 の 行 番 号 を 表 示 し ま す 。

(.+1)newline 指 定 し た 行 を 表 示 し ま す 。 そ し て 、 現 在 行 番 号 を 表 示 し た 行 の も の に 設 定 し ま す 。

フ ァ イ ル

ed.hup 端 末 が 回 線 切 断 し た 場 合 に 、

ed が バ ッ フ ァ 内 容 を 書 き 出 す フ ァ イ

ル 。

関 連 項 目

vi(1), sed(1), regex(3), sh(1).

USD:12−13

B. W. Kernighan and P. J. Plauger, Software Tools in Pascal , Addison−Wesley, 1981.

制 限

edfile 引 数 に 対 し て バ ッ ク ス ラ ッ シ ュ エ ス ケ ー プ 処 理 を 施 し ま す 。 つ ま り 、 フ ァ イ ル 名 中 で バ ッ ク ス ラ ッ シ ュ (\) を 前 に つ け た 文 字 は 、 リ テ ラ ル と し て 解 釈 さ れ ま す 。

(バ イ ナ リ で は な い ) テ キ ス ト フ ァ イ ル の 最 後 が 改 行 文 字 で 終 っ て い な い 場 合 、 ed は そ れ を 読 み 書 き す る 際 に 改 行 文 字 を 追 加 し ま す 。 バ イ ナ リ フ ァ イ ル の 場 合 は 、 ed は こ の よ う な 改 行 文 字 追 加 は 行 い ま せ ん 。

1 行 あ た り の オ ー バ ヘ ッ ド は 、 ポ イ ン タ 2 つ 、 long int 1 つ 、 int 1 つ で す 。

診 断

エ ラ ー が 発 生 す る と 、 ed は ’?’ を 表 示 し 、 コ マ ン ド モ ー ド に 戻 る か 、 ス ク リ プ ト に よ る 実 行 の エ ラ ー の 場 合 に は プ ロ グ ラ ム を 終 了 し ま す 。 最 後 の エ ラ ー メ ッ セ ー ジ に つ い て の 説 明 は 、 ’h’ (help) コ マ ン ド を 用 い る こ と で 表 示 可 能 で す 。 変 更 さ れ た バ ッ フ ァ 内 の デ ー タ を 書 き 出 さ ず に 、 ed を 終 了 し よ う と し た り 、 他 の フ ァ イ ル を 編 集 し よ う と し た り す る と 、 エ ラ ー に な り ま す 。 そ の 場 合 で も 、 同 一 の コ マ ン ド を 2 回 入 力 す る と 、 コ マ ン ド は 成 功 し ま す 。 し か し 、 そ れ ま で の 未 保 存 の 編 集 結 果 は 、 す べ て 失 わ れ ま す 。

ed は エ ラ ー が 発 生 し な か っ た 場 合 0 で 終 了 し ま す 。 そ れ 以 外 の 場 合 は >0 で 終 了 し ま す 。