sed はパターンの 2 番目の発生と一致します。

sed はパターンの 2 番目の発生と一致します。
$Subj .= "HAD PROBLEMS";

if ($To) {
    $Cc = "abc\@xyz.com";
}
else {
    $Cc = "abc\@xyz.com";
}

上記の内容をファイルとして保存しました。 $ CcのEメールIDを新しいEメールIDに置き換える必要があります。

これを行うには、次のsedコマンドがあります。

sed '\|HAD PROBLEMS|,/}/ s/$Cc = (\"[A-Za-z0-9])(.)([A-Za-z0-9]*)\@xyz.com\"/\$Cc = "new email\@xyz.com"/' test.txt

このコマンドは、if {}ブロック内の$ Cc変数($ Ccの最初の出現)のEメールIDのみを置き換えます。なぜなら、閉じる一致パターンが「}」であるからです。また、2番目の$ CcのEメールIDを変更したいと思います。 「}」の2番目の項目をどのように照合しますか?

ベストアンサー1

参照アドレスを新しいメールアドレスに置き換えるには、次の手順を試してください。

$ sed 's/\$Cc.*/\$Cc="new_mail\@abc.com"/g' input.txt
$Subj .= "HAD PROBLEMS";

if ($To) {
    $Cc="[email protected]"
}
else {
    $Cc="[email protected]"
}

おすすめ記事