【发布时间】:2016-05-08 18:57:13
【问题描述】:
我必须解析一个 csv 文件并将其内容转储到 mysql 表中。
# myfile.csv # 内容 # 示例标题 “带引号的 header1”,不带引号的 header2,“header3”,header4,hheader5 "示例文本",2,3,4,"MoreText,带逗号" "Text2 转义 \"",8,6,7,9 "文本3",876,0.6,7,10第一个输出
rowid|header1 带引号|示例文本|myfile 1|不带引号的标题2|2|我的文件 1|header3|3|我的文件 1|header4|4|我的文件 1|header5|MoreText,带逗号|myfile 2|header1 带引号|Text2 带转义 \"|myfile 2|header2 不带引号|8|我的文件 2|header3|6|我的文件 2|header4|7|我的文件 2|header5|9|我的文件 3|header1 带引号|text3|myfile 3|header2 不带引号|876|我的文件 3|header3|0.6|我的文件 3|header4|7|我的文件 3|header5|10|我的文件在第二个输出中,我需要水平对齐自定义标题。例如
rowid|"header1 带引号"|"header3"|header4|文件名 1|示例文本|3,4,myfile 2|Text2 带有转义的 \"|6|7|myfile 3|文本3|0.6|7|我的文件对于第二个输出,它可以是我选择的任何标题集。 然后我可以使用 load data infile 将这两个输出数据加载到 mysql 表中。寻找 awk 脚本来实现这一点。需要帮助请叫我。发送。
【问题讨论】:
-
请原谅未格式化的数据。还在学习中。。
-
@edmorton 按要求编辑了问题。
-
如果您需要使用嵌入的逗号和引号来处理 CSV 的全部复杂性,您可能最好使用 Python 或 Perl 以及它们提供的 CSV 模块,或者像 CSVfix 这样的专业工具(它曾经托管在 Google Code 上,但现在已经关门了;这些天我不确定它的官方来源,这很尴尬)。