概要
exはViエディタのラインベースコマンドモードです。これは、ファイルのコンテンツを1行ずつ処理したり、正規表現を使用して複雑なテキスト変換を実行したりするのに非常に役立ちます。特にシェルスクリプト内でファイルを自動的に変更する際に強力なツールとして活用されます。
主な特徴
- ラインベースのテキスト編集
- スクリプトおよび自動化されたタスクに最適化
- 強力な正規表現サポート
- Vi/Vimと同じコマンドセットを使用
- 非対話モードサポート
主なオプション
exは主にファイル内で直接コマンドを実行しますが、起動時に特定の動作を制御するいくつかのコマンドラインオプションを提供します。
起動およびモードオプション
生成されたコマンド:
コマンドを組み合わせてみてください。
説明:
`ex` コマンドを実行します。
これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。
使用例
exは主にスクリプト内で特定のタスクを実行したり、viエディタ内で`:ex`コマンドに切り替えて使用されます。
ファイルを開いて内容を出力
ex -s file.txt <<EOF
%p
q!
EOF
ファイルをexモードで開き、すべての行を出力してから終了します。
ファイル内の文字列を置換して保存
ex -s -c '%s/old_string/new_string/g | wq' file.txt
file.txtファイル内の'old_string'を'new_string'にすべて置換して保存してから終了します。
複数のファイルで文字列を一括置換
for f in *.txt; do ex -s -c '%s/error/warning/g | wq' "$f"; done
現在のディレクトリのすべての.txtファイルで'error'を'warning'に置換します。
特定の行を削除
ex -s -c '5d | wq' file.txt
file.txtファイルから5行目を削除して保存します。
ヒントと注意点
exは対話的な使用よりもスクリプトや自動化されたタスクにより適しており、効率的なテキスト処理のためにいくつかのヒントを知っておくと良いでしょう。
主なヒント
- 非対話スクリプトでは、常に`-s` (silent) オプションを使用して不要なメッセージを抑制してください。
- コマンドは`vi`のコマンドモードと同じで、`:wq`で保存して終了、`:q!`で保存せずに終了できます。
- 正規表現は`sed`と同様に強力に活用できます。`%s/pattern/replacement/g`はファイル全体でパターンを置換するのに使用されます。
- exはほとんどのLinuxシステムにデフォルトでインストールされている`vi`または`vim`パッケージの一部です。
- パイプ(`|`)を使用して複数のexコマンドを1行に連結できます。