ubuntuusers.de

CSV - Spalten bei Bedarf einfügen

Status: Ungelöst | Ubuntu-Version: Ubuntu 12.04 (Precise Pangolin)
Antworten |

elecsun

Anmeldungsdatum:
18. April 2016

Beiträge: Zähle...

Wohnort: Dessau-Roßlau

Hallo, bei der Bearbeitung des Imports von csv-Dateien (https://forum.ubuntuusers.de/topic/csv-to-mysql-import/) musste ich feststellen, dass bei der Erstellung der csv-Dateien teilweise eine Spalte fehlt. Leider kann ich dies aber nicht beeinflussen, da die Hard- und Software dazu nicht zugänglich sind.

Besteht eine Möglichkeit mit z. B. awk oder sed die Anzahl der Spalten zu prüfen und bei Bedarf eine zusätzliche Spalte an einer bestimmten Stelle mit dem Wert "0" einzufügen?

Datei mit allen Spalten:

2016-04-08T00:04:01,50020,23243,23248,23274,97889,83145,106857,951,63188,20627,
2016-04-08T00:03:00,50030,23244,23259,23281,97765,83452,106734,951,63220,20614,

Datei ohne 2. Spalte:

2016-04-08T00:01:00,23246,23249,23274,97967,83100,106803,951,63207,20569,
2016-04-08T00:00:00,23251,23251,23285,97999,83202,107063,951,63283,20681,

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

Klar geht das.

Du hast allerdings nicht verraten, an welcher Stelle Du das einfügen willst. deshalb habe ich jetzt einfach mal als Beispiel vor Spalte 5 die "0," eingefügt:

track@track:~$ echo '2016-04-08T00:01:00,23246,23249,23274,97967,83100,106803,951,63207,20569,
2016-04-08T00:00:00,23251,23251,23285,97999,83202,107063,951,63283,20681,'  |  awk -F"," '{OFS=FS; $5="0," $5; print}'
2016-04-08T00:01:00,23246,23249,23274,0,97967,83100,106803,951,63207,20569,
2016-04-08T00:00:00,23251,23251,23285,0,97999,83202,107063,951,63283,20681, 

Eine Doku dazu findest Du in der awk- Einführung und im Detail in man awk .

LG,

track

Antworten |