Spezifische Zeile in einer CSV-Datei bearbeiten?

3 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Bei solchen Aufgaben hilft der Stream Editor. Am Beispiel ›Flugzeug‹:

Wenn in einer Datei ›Liste.csv‹ die Zeile ›Flugzeug‹ steht, dann lässt diese sich über den folgenden Befehl ändern:

sed -i '/Flugzeug/cFlugzeug, 516' Liste.csv

In der Datei ›Liste.csv‹ steht anschließend die Zeile ›Flugzeug, 516‹. Den Rest bekommst du selbst hin.

Das ideale Mittel für CSVs ist nicht ein Script in Bash, sondern in AWK. Da ist das deutlich kompakter und einfacher.

Aber ansonsten: Textdatei Zeile für Zeile lesen, in eine neue Textdatei die Zeile mit dem Anhang schreiben, erste Datei löschen, zweite Datei zur ersten umbenennen.


FragFlo98 
Beitragsersteller
 24.03.2022, 15:09

Hast du evtll ein paar Code Beispiele?

Ich arbeite mit C++, das müsste mit dem "Shell-Script" doch auch gehen, ich würde mir einen Substring von jeder Zeile greifen und prüfen ob darin "Auto" oder "Auto," steht, dann würde ich den String entsprechend an der analysierten Stelle erweitern und Satz für Satz in eine neue Datei csv Datei ausgeben, nach dem alles erledigt ist würde ich die neue Datei anstelle der alten Datei kopieren.


FragFlo98 
Beitragsersteller
 24.03.2022, 15:10

Das würde nicht funktionieren... Ich habe über 70 Werte, welche ich nicht alle manuell eintragen möchte. Es sollte schon so sein, daß es explizit nach Zeilen geht.