0
私の開発環境の設定は、/ etc/hostファイルのlocalIPエントリにある特定のホスト名を必要とするようなものです(理由は複数のマイクロサービスとストレージ、つまりCassandraとRedis - ホスト名へのバインド) 私はこの単純なbashスクリプトこのAlthroughsedコマンドは変数を使ってIPアドレスを置き換えません
newIP=`ip a | grep wlp5s0 | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" | head -1`
echo $newIP
oldIP=`ping -q -c 1 -t 1 dummy | grep PING | sed -e "s/).*//" | sed -e "s/.*(//"`
echo $oldIP
sed -i 's/$oldIP/$newIP/g' /etc/hosts
が正しいIPを印刷しているが、交換が が起きていない、SEDが、わからない
おそらく 'sed -i.bak" s/$ oldIP/$ newIP/g "/ etc/hosts'を使用していますか? –
答えをいただきありがとうございます。これは正規表現の変更を利用することもできます。 – Count
正規表現はよりコンパクトです。 同じ動作のために書くことが少なくて済む - >生産性が向上し、あなたの指、目にとってより良い。 :-) パフォーマンスの面では、\ dを使用する方が良いですが、正規表現の文字列が小さくなると分かりません(メモリ消費量はほとんどありません) – Allan