这是我使用的shell脚本中的代码
sed 's/xyxx/$date1/' /u001/Scripts/abc.html > /u001/Scripts/abc.html
该代码试图在 AWK 命令中打印 HTML 标签
nawk 'BEGIN{
FS=","
print "<HTML>""<HEAD>""<p>Hi All,<br><br>There are no cases closed on the"
print "xyxx that meet the criteria for submission</p>"
}
END{
print "<p>Regards,<br>Support Team</p></BODY></HTML>"
}
'
答案1
在此命令中,
sed 's/xyxx/$date1/' /u001/Scripts/abc.html > /u001/Scripts/abc.html
重定向首先发生!因此 shell 打开/u001/Scripts/abc.html
以进行写入并清空它。然后sed
命令运行,但输入文件为空,因此也没有输出。
正如评论所建议的,您应该使用:
sed -i.bak 's/xyxx/'"$date1"'/' /u001/Scripts/abc.html
这将
- 创建一个扩展名为备份的文件
.bak
并覆盖原始文件(-i.bak
) - 并使用 的变量值
$date1
,因为它被放在双引号中,与表达式的其余部分不同sed
。