sedを使用してOpenVPNファイルからサーバー名を変更する

sedを使用してOpenVPNファイルからサーバー名を変更する

次のファイルがあります。

    proto udp
    resolv-retry infinite
    nobind

    #Single line of those bellow, I've added multiple for variations of it 
    remote fi.server.com 50505
    remote us-cityone.server.com 5050
    remote uk-citytwo.server.com 50500
    remote us-citythree.server.com  56546
    remote sweden.server.com 6546546
    rest of config file..

明らかに、これはOpenVPN confファイルです。remote servername 5555- で始まる行だけを変更したいと思います。サーバー名もう一つ。

remote servername 5555例として複数行を追加しました。すべて私が変更できる変更を示しているからです。

私はちょうど中間列などを一致させ、別のfi.server.com名前に変更したいと思いますus-newyorkcity.server.comsed

このパターンが機能しないのはなぜですか?

sed -i.bak 's/\w+(-|\.)\.?\w+\.?\.com/g' filename

私もこれをやったけど..

sed -i.bak 's/\w+(-|\.)\.?\w+\.?\.\w+/g' filename

また、この例では部品のみが静的であることus-newyorkcity.server.comserver.com注意してください。休憩が変わりました。

助けてくれてありがとう!

ベストアンサー1

変数NEWNAME名が挿入したい名前であると仮定すると、次のようになります。

sed -i.bak "s|^\(remote \)\([^ ]*\)\([ ]*[0-9]*\)|\1$NEWNAME\3|" filename

おすすめ記事