ファイル内のテキストを検索し、その後にテキストを挿入する

ファイル内のテキストを検索し、その後にテキストを挿入する

テキストファイルがあります。テキストファイルには次の内容が含まれています。

ServerName
ServerAdmin webmaster@localhost
DocumentRoot

www.mydomain.com最後にテキストを挿入する必要がありますServerName。これを行うコマンドはありますか?

ベストアンサー1

使用sed:

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

キャプチャされたグループは\(ServerName\)代替モードで使用されます\1

ssedGNU、busybox、またはいくつかのBSD実装を想定して、ファイルを適切に編集してバックアップを作成しますsed

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

元のファイルは のままfile.bak、変更されたファイルは のままですfile.txt.bak

場所で編集、バックアップは不要(ssedまたはbusyboxGNUのみ):

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

(BSDの場合sed -i '' 's/...)を使用してください。


キャプチャグループなしで短くする:

sed -i 's/^ServerName$/& www.mydomain.com/' file.txt

これは&マッチに置き換えられます。

おすすめ記事