我需要替换 html 中的字符串 sed 不起作用

我需要替换 html 中的字符串 sed 不起作用

这是我使用的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

相关内容