このsedに問題がありますか?

このsedに問題がありますか?

「relvir」のIPアドレスを変更したい:

127.0.0.1   localhost
127.0.1.1   debian-foo.jimnet debian-foo

54.218.208.77   server1
31.187.98.19    machine2
51.39.207.120   relvir

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

私はこれを試しましたが、なぜ動作しないのかわかりません。

cat sedtest | sed 's/.+relvir$/1.2.3.4 relvir/'

よろしくお願いします!

答え1

そして基本正規表現 sed+数量子を使用して必要な置換を実行するために文字通り処理されます*

cat sedtest | sed 's/.*relvir$/1.2.3.4 relvir/'

引き続き+数量子として使用拡張正規表現適用-Eオプション:

cat sedtest | sed -E 's/.+relvir$/1.2.3.4 relvir/'

答え2

私はこれがあなたが探しているものだと思います

猫sedtest | sed 's/.\+relvir$/1.2.3.4 relvir/'

関連情報