テキストファイルがあります。テキストファイルには以下の内容が含まれています。
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
。
バックアップなしでその場で編集する (GNUssed
またはGNUbusybox
のみ):
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 substitue コマンドの使用:
sed -i 's/ServerName/ServerName www.mydomain.com/' file.txt