Unix Scripting для чтения файла CSV и изменения формата - PullRequest
1 голос
/ 28 февраля 2012

Я новичок в сценариях 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 ]

1 голос
/ 28 февраля 2012
$ 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');
0 голосов
/ 07 марта 2012

Копирование хранилища из '/h/u544835/dehpc14_Disk_Quota_Report.csv' РАЗДЕЛИТЕЛИ ',' CSV;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...