ed

行指向テキストエディター

起動方法

    ed file

機能

行単位で編集するテキストエディターである。
UNIXの最初のバージョンから提供されている非常に古いエディターである。
行単位で編集するので使いにくいが、viさえ使えないような非常事態などに役に立つ。
また、edのコマンドはviのexモードでのコマンドと同じものが多いので覚えておいて損は無い。

コマンド

(指定行)a
指定行の後ろに文字列を追加
(指定行1,指定行2)c
指定行1から指定行2の文字列を変更
(指定行1,指定行2)d
指定行1から指定行2の文字列を削除
(指定行1,指定行2)g/正規表現/コマンド
指定行1から指定行2の正規表現に一致する行に対してコマンドを実行
(指定行)i
指定行の前に文字列を追加
(指定行1,指定行2)j
指定行1から指定行2までを1行に連結
(指定行)k文字
指定行に文字で表されるマークを付ける
(指定行1,指定行2)m(指定行3)
指定行1から指定行2の行を指定行3の下に移動(指定行3は0も指定できる)
(指定行1,指定行2)n
指定行1から指定行2までを行番号付で表示
(指定行1,指定行2)p
指定行1から指定行2までを表示
q
終了
Q
強制終了(それまでの編集内容は捨てられる)
(指定行)r ファイル
指定行の下にファイルを読み込む(ファイルを省略すると編集中のファイルを読み込む)
(指定行)r !外部コマンド
指定行の下に外部コマンドの結果を書き込む
(指定行1,指定行2)s/正規表現/変換文字列/
指定行1から指定行2の正規表現に一致する最初の文字列を変換文字列に変換
(指定行1,指定行2)s/正規表現/変換文字列/g
指定行1から指定行2の正規表現に一致する全ての文字列を変換文字列に変換
(指定行1,指定行2)s/正規表現/変換文字列/数値
指定行1から指定行2の正規表現に一致する数値番目の文字列を変換文字列に変換
(指定行1,指定行2)t(指定行3)
指定行1から指定行2の行を指定行3の下にコピー(指定行3は0も指定できる)
(指定行1,指定行2)v/正規表現/コマンド
指定行1から指定行2の正規表現に一致しない行に対してコマンドを実行
(指定行1,指定行2)w ファイル
指定行1から指定行2のファイルに書き込む(ファイルを省略すると編集中のファイルを書き込む)
=
編集中のファイルの行数を表示
!外部コマンド
外部コマンドを実行(コマンド中のエスケープされない%は現在編集中のファイル名になる)

指定範囲

数字
行番号
+数字
現在の行 + 数字行目
-数字
現在の行 - 数字行目
$
最期の行
$-数字
最期の行 - 数字行目
.
現在の行
%
すべての行
,
すべての行
;
現在の行から最期の行まで
/正規表現/
正規表現で表される行
'文字
文字で表されるマークのある行

使用例

# ed test.c
31
1,$p
main()
{
	printf("hello\n");
}
3
	printf("hello\n");
s/hello/bye/
.
	printf("bye\n");
w
q
#

Home | Contents
Mail