Das folgende Bash -Skript kann verwendet werden, um leere Zellen in einer CSV -Datei zu füllen. Wir gehen davon aus, dass Ihre Datei gleichmäßig verteilt ist, damit sie die gleiche Anzahl von Spalten in jeder Zeile enthält, die von Comma getrennt ist. Wenn Ihre Datei ist TAB
getrennt verwenden. Verwenden Sie einen folgenden Linux -Befehl, um ihn in die von der Trennung von Comma getrennte Wertdatei zu konvertieren, bevor Sie fortfahren.
Beispiel:
$ CAT -Test 1 2 4 4 2 3 3 3 $ sed 's/\ t/,/g' Test 1,2,4,4,4 2,3,3,3 oder $ CAT -Test | Tr '\ t ",' 1,2,4,4 2,3,3,3
Hier ist ein Inhalt unserer CSV -Datei, die leere Wertzellen enthält.
$ cat myfile.CSV 1,2,3,4,5,6,7 ,,,,, 1 ,, 4,5 ,,, 2,3,4,5,,
Um alle leeren Werte in der obigen CSV -Datei zu füllen, können wir das folgende Bash -Skript verwenden:
#!/Bin/Bash für ich In $ ( SEQ 1 2); Tun sed -e "s/^,/$ 2,/" -e "s/,,/, $ 2,/g" -e "s/, $/, $ 2/" -i $ 1 Erledigt
Kopieren Sie die obigen Zeilen in eine Datei zB. Füllbetriebswerte.Sch
. Das Skript akzeptiert zwei Argumente. Das erste Argument, das es einnimmt, ist die Datei, die Sie alle leeren Werte ersetzen möchten, und das zweite Argument ist eine Zeichenfolge oder eine Nummer, die die leeren Werte ersetzen sollen. Wenn der Befehl Linux folgt meine Datei.CSV
.
Der Ersatzcharakter, der in jede leere Zelle eingebracht wird, wird sein 0
:
$ bash fill-tree-Werte.sh myfile.CSV 0
meine Datei.CSV
Die Datei wurde geändert und alle leeren Werte wurden durch ersetzt 0
:
$ cat myfile.CSV 1,2,3,4,5,6,7 0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,5,5,5,5,5,5,5,5,7,0,0,0,4,5, 1,0,0,4,0,0,0,5,5, 0,0