Я предложу вам использовать DOM Parser для этого типа работы, так как любое регулярное выражение, которое вы попробуете, в какой-то момент сломается, используя sed или любой его вариант. Так как вы попросили альтернативу в ваших комментариях, рассмотрите следующий код на PHP:
$content = '
<HTML>
<HEAD>
<link href="/style.css" rel="stylesheet" type="text/css">
<title>
Page Title Goes here
</title>
<script>
var str = "ZZZZZ1233@qq.edu";
</script>
</HEAD>
';
$dom = new DOMDocument();
$dom->loadHTML($content);
$head='
<head>
<script>
// your javascript goes here
var x="foo";
</script>
';
$headTag = $dom->getElementsByTagName("head")->item(0);
if ($headTag != null) {
$title = $headTag->getElementsByTagName("title")->item(0);
if ($title != null)
$head .= '<title>' . $title->textContent . '</title>
';
}
$head .= '</head>';
var_dump($head);
OUTPUT
string(118) "
<head>
<script>
// your javascript goes here
var x="foo";
</script>
<title>Page Title Goes here</title>
</head>"