在文件中尋找文本並在其後插入文本

在文件中尋找文本並在其後插入文本

我有一個文字檔。該文字檔案包含以下內容。

ServerName
ServerAdmin webmaster@localhost
DocumentRoot

我需要www.mydomain.com在 後面插入一段文字ServerName。有什麼命令可以做到這一點嗎?

答案1

使用sed

sed 's/^\(ServerName\)$/\1 www.mydomain.com/' file.txt

捕獲的組\(ServerName\)在替換模式中用作\1

就地編輯文件,並進行備份,假設 GNU、ssedbusybox 或某些 BSD 實作sed

sed -i.bak 's/^\(ServerName\)$/\1 www.mydomain.com/' file.txt

原始文件將保留為file.bak,修改後的文件將保留為file.txt.bak

就地編輯,無需備份(ssedbusybox僅限 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

相關內容