sedを使用して特定のテキストファイルのLinuxパスを置き換える方法

sedを使用して特定のテキストファイルのLinuxパスを置き換える方法

NGINXの設定方法に関するいくつかのドキュメントにいくつかのコマンドを書いています。私は「viで開く」と書いて、誰かがそのすべてを知ることを期待したくありません。私はこのsedコマンドを実行するように言います。

sedを使ったのは今回が初めてです。

ファイルにエントリが含まれています。

server {
    {{{{{{OTHER STUFF}}}}}}}

    root /var/www/html;

    {{{{{{MORE STUFF}}}}}}
} 

/var/wwwに交換して削除したいですhtml

スラッシュとネストで苦労しています。ファイルに「root」という単語が異なる場合もあります。

これはうまくいきません

sed -i 's//var/www/html//var/www/g' default

ベストアンサー1

sedGNUコマンドには他の区切り文字sedが許可されています。それ以外の場合は、パターンに表示されない区切り文字を使用できます。/エスケープするか、他の特殊文字を使用する必要があります。

sed 's% /var/www/html% /var/www%' default

さらに、最新のGNUはsedオプションを使用するときの内部置換をサポートしています-i。 MACおよびFreeBSDユーザーの場合-i ''

また、この-i.backオプションを使用してファイルのコピーを作成するバックアップを取得することもできますdefault.back

おすすめ記事