$Subj .= "HAD PROBLEMS";
if ($To) {
$Cc = "abc\@xyz.com";
}
else {
$Cc = "abc\@xyz.com";
}
我将上述文本保存在一个文件中。我需要将 $Cc 中的电子邮件 ID 替换为新的电子邮件 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 第一次出现)的电子邮件 ID,因为我的结束匹配模式是“}”。我也想替换第二个 $Cc 中的电子邮件 ID。我如何匹配第二次出现的“}”?
答案1
如果您想将抄送地址替换为新的电子邮件地址,请尝试以下操作
$ sed 's/\$Cc.*/\$Cc="new_mail\@abc.com"/g' input.txt
$Subj .= "HAD PROBLEMS";
if ($To) {
$Cc="[email protected]"
}
else {
$Cc="[email protected]"
}