概述
ex 是 Vi 編輯器的基於行的命令模式。它在逐行處理文件內容或使用正規表達式執行複雜的文本轉換方面非常有用。特別是在 shell 腳本中自動修改文件時,它是一個強大的工具。
主要特點
- 基於行的文字編輯
- 針對腳本和自動化任務進行了優化
- 強大的正規表達式支援
- 使用與 Vi/Vim 相同的命令集
- 支援非互動模式
主要選項
ex 主要在文件內直接執行命令,但它提供了一些命令行選項來控制啟動時的特定行為。
啟動和模式選項
生成的命令:
請試著組合命令。
這個 Django 應用程序是一個技術指南文檔,旨在為用戶輕鬆解釋 Linux 的各種命令。
`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 命令連接在同一行上。