Wenn Sie Ihre Tabelle file1.csv
wie gezeigt exportiert haben, tun Sie dies
#!/bin/sh awk -F, -v OFS=, ' NR==1 { for (i = 1; i <= NF; i++) { if ($i == "") $i = prev prev=$i } } { print }' < file1.csv > file2.csv
-F, -v OFS=,
Setztawk
die Eingabe- und Ausgabedatei-Trennzeichen auf,
.NR==1
bedeutet "nur beim ersten Datensatz (Zeile / Zeile) Folgendes tun".- Die
for
Schleife betrachtet jedes Feld (Zelle) in der ersten Zeile und setzt es, falls es leer ist, auf den vorhergehenden Wert. { print }
druckt alle Datensätze vonfile1.csv
bisfile2.csv
, wobei der erste geändert wird (wie oben beschrieben) und alle anderen von der Eingabe zur Ausgabe weitergeleitet werden (leere Zellen unterhalb der ersten Zeile werden also nicht manipuliert).