在awk脚本中将电子邮件插入sqlite字段

时间:2014-07-21 23:32:42

标签: bash sqlite awk formatting

我正在电子邮件中插入 SQlite 表格字段,在awk中使用:

system("sqlite3 database.db " sprintf("\"UPDATE tbl SET email = '<a href=\\\"mailto:%s\\\">%s</a>' WHERE field = '%s'\", m[1], m[1], l))"))

之后使用bash中的SELECT查询:

function do_query() {

    sqlite3 -batch database.db <<- "end_of_message"
        #...
        #...
        #.. outputs to "o.html"

        select field1,email,field3 from tbl; # <-- HERE IS THE SELECT
            QUERY FOR THAT EMAIL FIELD
    end_of_message
    #...
    #... here just embedding output of this into my template file
    #... which is some simple HTML

    sed -e '
    /\${template_tag}/ {
        r o.html <--output from sqlite3 select statement
        d
    }
    ' template.html > out.html

}

,在浏览器中渲染这个字面意思

<a href="mailto:worldnamegroup@gmail.com">worldnamegroup@gmail.com</a>

,而不是worldnamegroup@gmail.com作为clickto邮件链接。

所以在浏览器的source view中,我看到了这一点:

&lt;a href=&quot;mailto:worldnamegroup@gmail.com&quot;&gt;worldnamegroup@gmail.com&lt;/a&gt;

<>分别转换为&lt;&gt;

如何插入email以便我在浏览器中正确呈现电子邮件 链路?

编辑1 它也很奇怪我从那个选择中得到了其他输出,比如<td> 例。但是当.mode设置为html时, sqlite 会在内部完成。

编辑2 我发现真正的问题可能是sqlite模式选项。设置.mode column后,它会在终端显示良好状态,但在.mode html时显示:

<TD>&lt;a href=&quot;mailto:worldnamegroup@gmail.com&quot;&gt;worldnamegroup@gmail.com&lt;/a&gt;</TD>

编辑3 在有人提出更聪明的东西之前,我做了一个像这样的解决方法:

cat o.html |recode html..ascii

,然后使用其输出来提供我的template

0 个答案:

没有答案