$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]"
}