概要
edは、テキストファイルを一行ずつ編集することに特化した、強力かつ簡潔なエディタです。対話モードだけでなく、スクリプトからの非対話的な使用も可能であり、自動化されたテキスト処理に適しています。
主な特徴
- ライン指向編集: 一度に一行ずつ作業します。
- スクリプトフレンドリー: 非対話的な使用に適しています。
- 非常に軽量: 最小限のリソースを使用します。
- POSIX標準: ほとんどのUnix/Linuxシステムに標準搭載されています。
主なオプション
edはコマンドラインオプションが多くなく、ほとんどの機能はエディタ内部のコマンドで実行されます。
動作制御
生成されたコマンド:
コマンドを組み合わせてみてください。
説明:
`ed` コマンドを実行します。
これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。
使用例
edは対話的に使用するか、スクリプトで入力リダイレクションを介して使用できます。
新規ファイル作成とテキスト追加
ed newfile.txt
a
Hello, ed!
This is a test line.
.
w
q
新しいファイルを開き、テキストを追加してから保存して終了します。
既存ファイルを開いて内容を表示
ed existing_file.txt
1,$p
q
既存ファイルを開き、すべての行を出力してから終了します。
特定のテキストを置換 (非対話)
echo '1,$s/old_text/new_text/g
w
q' | ed -s my_document.txt
ファイル内の 'old_text' を 'new_text' にすべて置換して保存します。-s オプションで出力を抑制します。
ファイル末尾に内容を追加 (非対話)
echo '$a
New line added at the end.
.
w
q' | ed -s my_document.txt
ファイルの末尾に新しい行を追加して保存します。
ヒントと注意点
edは他の現代的なエディタとは使用方法が大きく異なるため、いくつかの重要な概念を理解することが重要です。
ed使用の主要概念
- コマンドモードと入力モード: edは基本的にコマンドモードにあり、
a(append)、i(insert)、c(change)コマンドで入力モードに入ります。入力モードで単独の行に.(ピリオド)を入力すると、コマンドモードに戻ります。 - アドレス指定: コマンドは特定の行(例:
1は最初の行、$は最後の行、.は現在の行)または行範囲(例:1,$はファイル全体)に適用できます。 - 保存と終了:
wコマンドで変更を保存し、qコマンドでエディタを終了します。wqのような組み合わせはサポートされていません。Qは変更を保存せずに強制終了します。 - 現在の行の確認:
.コマンドを入力すると現在の行の内容が出力され、=コマンドは現在の行番号を出力します。 - 正規表現の活用:
s(substitute)コマンドと共に強力な正規表現を使用して、テキストを検索・置換できます。