Programmierung & Skripten

So füllen Sie alle leeren geschätzten Zellen in einer CSV -Datei mit SED und Bash Shell

So füllen Sie alle leeren geschätzten Zellen in einer CSV -Datei mit SED und Bash Shell

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 TABgetrennt 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 
Fatal ERROR BAD Primärpartition 0 Partition endet im endgültigen Teilzylinder
Fataler Fehler Schlechte Primärpartition 0 Die Partition endet im endgültigen Teilzylinder Dieser Fehler tritt auf, wenn CFDisk versucht, eine Partiti...
ISP Caching, um die Bandbreite zu reduzieren - WGet und Meta -Problemumgehung
Es ist eine übliche Praxis von ISPs, um eine mögliche Datei vom Herunterladen zu speichern. Als Gesamtergebnis speichert dies die viel Bandbreite von ...
Xine konnte Audio -Treiber nicht initialisieren
Xine konnte Audio -Treiber -Fehlermeldungen nicht initialisieren, ist ein Problem, das mich lange Zeit stört. Ich habe das Gefühl, dass es nicht mit d...