我有一個文字檔。該文字檔案包含以下內容。
ServerName
ServerAdmin webmaster@localhost
DocumentRoot
我需要www.mydomain.com
在 後面插入一段文字ServerName
。有什麼命令可以做到這一點嗎?
答案1
使用sed
:
sed 's/^\(ServerName\)$/\1 www.mydomain.com/' file.txt
捕獲的組\(ServerName\)
在替換模式中用作\1
。
就地編輯文件,並進行備份,假設 GNU、ssed
busybox 或某些 BSD 實作sed
:
sed -i.bak 's/^\(ServerName\)$/\1 www.mydomain.com/' file.txt
原始文件將保留為file.bak
,修改後的文件將保留為file.txt.bak
。
就地編輯,無需備份(ssed
或busybox
僅限 GNU):
sed -i 's/^\(ServerName\)$/\1 www.mydomain.com/' file.txt
(對於 BSD,請使用sed -i '' 's/...
)。
較短,沒有任何捕獲組:
sed -i 's/^ServerName$/& www.mydomain.com/' file.txt
這裡&
將被替換為匹配。
答案2
sed --in-place 's/ServerName/& www.example.com/' /path/to/apache-vhost.conf
答案3
使用 sed 替換指令:
sed -i 's/ServerName/ServerName www.mydomain.com/' file.txt