微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

AWK csv文件到sql文件输出

有人可以帮我在这里,因为我不能让我的awk命令输出一些简单的3列CSv到sql

CSV

01Aug2011,user,12 02Aug2011,userb,34

AWK

我知道这个为我工作

如何使用AWK合并两个文件

replace换行符

复杂的CSV循环awk循环

在unix中查找和删除(更新)

如何从awk中的variables中裁减空白?

awk -F',' '{ print "INSERT INTO Testing (`Date`,`User`,`Usage`) VALUES (" "'"$1"'""," """'"$2"'""," """'"$3"'"")" ""}' new.csv > output.log

但不是这个

awk -F',`Usage`) VALUES (" "`"$1"`""," """`"$2"`""," """`"$3"`"")" ""}' new.csv > output.log

在Linux文件中只打印6个和10个字符

将命令输出行存储到基于新行字符的数组中

将awk脚本的输出redirect到一个文件

Awk / Perl以合理的格式将文本文件转换为csv

结合使用sed或awk的匹配行?

我不是很确定你的问题是什么。

但如果问题是单引号,你可以试试这个

awk -F',' '{ printf "INSERT INTO Testing (x27Datex27,x27Userx27,x27Usagex27) VALUES (x27%sx27,x27%sx27,x27%sx27)",$1,$2,$3;print ""}' yourFile

用你的示例输入行,输出是:

INSERT INTO Testing ('Date','User','Usage') VALUES ('01Aug2011','user','12') INSERT INTO Testing ('Date','Usage') VALUES ('02Aug2011','userb','34')

希望这是你想要的。

首先,它看起来像是在插入语句结束时丢失了分号。

尝试将sql粘贴到一个MysqL客户端会话中 – 这会显示您是否错误生成sql。 我怀疑MysqL是拒绝日期(如果它是一个日期列)。

我会使用printf – 它使代码更易于阅读 – 你有这么多的引号难以阅读 – 使用尽可能小的引号 – 只有添加它们,如果需要在那里。

awk -F',' '{ printf("INSERT INTO Testing (Date,User,Usage) VALUES('%s','%s',%d);n",$3); }' file.csv

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐