2 つのサーバー間で一部のデータを移行中です。データは、各サーバーの同じフォルダー構造に保持されます。
データを移動したら、影響を受けるすべての Linux マシンで fstab ファイルを更新したいと考えています。サーバー間でデータを再同期し、リスト内の各マシンにログオンして、sed を使用して新しい IP アドレスで fstab を更新する bash スクリプトがあります。
sed "s/\(172.16.0.30\)\(.*\)\(${share}\)\(.*\)/172.16.0.35\2\3\4/"
これは過去にまったく問題なく機能していましたが、今回は、他のいくつかのフォルダーと非常によく似た名前のフォルダーを移行しています。$share が「ホーム」であるとしましょう。
home
home-old
home-ancient
私が抱えている問題は、この正規表現が、必要な共有だけでなく、 $share に含まれるテキストを含むすべての共有を取得していることです。
正規表現を調整して、必要な単一行の IP のみを置き換える方法はありますか? /b 変数を調べましたが、うまく動作しないようです。残念ながら、通常、正規表現は私を混乱させます。