概要
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)コマンドと共に強力な正規表現を使用して、テキストを検索・置換できます。