【发布时间】:2017-08-28 09:58:28
【问题描述】:
我正在构建一些电子邮件模板,其中包含一些本地图片。
我正在尝试编写一个 shell 脚本来替换将我的图像转换为 base64。所以基本上自动转:
<img width="100%" src="./img/my_image.gif" />
到
<img width="100%" src="data:image/gif;base64,XXXXXXX" />
现在我使用了这个脚本:
#!/bin/bash
awk -F'[()]' -v q="'" '
/src="(.*)"/ {
cmd=sprintf("openssl enc -base64 -in %s | tr -d %c\\n%c",$2,q,q)
cmd | getline b64
close(cmd)
$0=$1 "(data:image/gif;base64," b64 ");"
}1' ./my_template.html
我遇到了两个问题: - 我的正则表达式似乎不正确,即使它在 regex101 上运行良好 - 这个正则表达式也会捕获不是本地的图像 (src="https://....")
我怎样才能调整它以使它在这里工作?
【问题讨论】:
-
你能否解释一下你的实际需求,而不是你的实际尝试和失败的原因?具有最少的输入和预期的可验证输出?