Unix Scripting读取CSV文件然后更改格式

时间:2012-02-28 11:35:07

标签: sql unix csv

我是unix脚本的新手,并希望得到一些指导或帮助。我想创建一个脚本来读取包含类似于下面的信息的csv文件。

Business Group  Used Disk Space (GB)    Disk Quota (GB)  Grace Period
EandT-Mech  35403.4                   37434.2              none
Rotatives-AD    6.40E-05                      524.288              none
Nacelles-Mech   0.056832                      1677.72              none

然后我需要在同一个脚本中读取或读取后将其更改为以下格式:

INSERT INTO Storage (b_group, used_space, disk_quota, grace_period)
VALUES (‘TSandD-Aero’,6.40E-05,734.003, ‘none’);
INSERT INTO Storage (b_group, used_space, disk_quota, grace_period)
VALUES (‘EDS-Admin’,192.076,3568.01, ‘none’);

所以只需将下面4个信息的值更改为csv文件中读取的内容。

所以总结一下,读取csv文件,放入sql formit并将其提交到我的数据库中,任何帮助或方向让我去的都会被认定,因为我在网上找不到类似的东西。

2 个答案:

答案 0 :(得分:1)

$ cat input.txt | awk 'NR>1{printf "INSERT INTO Storage(b_group, used_space, disk_quota, grace_period)\nVALUES(\"%s\", %s, %s, \"%s\");\n",$1,$2,$3,$4}' | tr '"' "'"

INSERT INTO Storage(b_group, used_space, disk_quota, grace_period)
VALUES('EandT-Mech', 35403.4, 37434.2, 'none');
INSERT INTO Storage(b_group, used_space, disk_quota, grace_period)
VALUES('Rotatives-AD', 6.40E-05, 524.288, 'none');
INSERT INTO Storage(b_group, used_space, disk_quota, grace_period)
VALUES('Nacelles-Mech', 0.056832, 1677.72, 'none');

答案 1 :(得分:0)

来自' /h/u544835/dehpc14_Disk_Quota_Report.csv'的COPY存储空间; DELIMITERS',' CSV;