Voraussetzungen:
Sie müssen eine CSV-Datei erstellen, bevor Sie das Beispiel dieses Tutorials üben können. Erstellen Sie eine CSV-Datei mit dem Namen „customers.csv“ mit dem folgenden Inhalt, um die Ausgabe des Skripts zu überprüfen, das in diesem Tutorial verwendet wird. In dieser Datei ist die 3 rd Felder der 4 Th Linie und 6 Th Zeile sind leer.
ID, Name, E-Mail, Adresse, Mobiltelefon101 , Jafar Iqbal, Jafar @ gmail.com, 9 / Ein Dhanmondi Dhaka, + 8801762341425
102 , Kamal Hossain, Kamal @ gmail.com, 120 Mirpur Dhaka, 8801988675345
103 Nirob Chowdhury 33 / 2 Jigatola Dhaka, 8801754532312
104 Farheen Hasan @ gmail.com < A href = 'leer' > , A > 10 Kadhalbagun Dhaka, + 8801512875634
105 , MD. Rahim,, 2 / B Dhanmondi Dhaka, + 8801700453423
Verschiedene Möglichkeiten zum Lesen der CSV-Datei in Bash
Die CSV-Datei kann mithilfe eines Bash-Skripts auf verschiedene Arten analysiert werden. In diesem Teil des Tutorials werden verschiedene Möglichkeiten zum Lesen der Datei „customers.csv“ gezeigt.
Beispiel 1: Lesen Sie den Originalinhalt der CSV-Datei
Erstellen Sie eine Bash-Datei mit dem folgenden Skript, das den vollständigen Inhalt der Datei „customers.csv“ mithilfe der „while“-Schleife liest:
#!/bin/bash
#Legen Sie den Dateinamen fest
Dateinamen = „Kunden.csv“
#Lesen Sie jede Zeile der Datei in jeder Iteration
während lesen Daten
Tun
#Zeile drucken
Echo $Daten
Erledigt < $Dateiname
Nach der Ausführung des Skripts erscheint folgende Ausgabe:
Beispiel 2: Lesen Sie die CSV-Datei durch Großschreibung des Headers
Die erste Zeile der Datei „customers.csv“ enthält die Überschrift der Datei. Erstellen Sie eine Bash-Datei mit dem folgenden Skript, das den Inhalt der Datei „customers.csv“ ausgibt, nachdem die erste Zeile der Datei großgeschrieben wurde. Der Befehl „awk“ wird im Skript verwendet, um den Inhalt der Datei nach der Großschreibung des Headers auszudrucken. Das Komma (,) wird in den FS- und OFS-Werten im Skript zugewiesen, um die Datei „customers.csv“ zu lesen und die Datei „updatedcustomers.csv“ zu schreiben. Mit dem Befehl „cat“ wird der Inhalt beider Dateien gedruckt.
printf 'Originaldatei: \N '#Drucken Sie den Originalinhalt der CSV-Datei
Katze cstomers.csv
#Erstellen Sie eine neue CSV-Datei, nachdem Sie den Header großgeschrieben haben
awk 'BEGIN{FS=',';OFS=','}
{
if(NR==1)
Druckoberteil ($0)
anders
}' Kunden.csv > aktualisiertecustomers.csv
printf ' \N Geänderte Datei: \N '
#Drucken Sie die neue CSV-Datei
Katze aktualisiertecustomers.csv
Nach der Ausführung des Skripts erscheint folgende Ausgabe:
Beispiel 3: Ersetzen Sie das leere Feld der CSV-Datei durch „Keine“
Erstellen Sie eine Bash-Datei mit dem folgenden Skript, das den Inhalt der Datei „customers.csv“ druckt, nachdem Sie das leere Feld mit dem Wert „None“ geändert haben. In dieser Datei sind zwei Felder leer, die im Folgenden erwähnt werden. Der Befehl „awk“ wird im Skript verwendet, um den Inhalt der Datei nach der Änderung der leeren Felder auszudrucken. Das Komma (,) wird in den FS- und OFS-Werten im Skript zugewiesen, um die Datei „customers.csv“ zu lesen und die Datei „updatedcustomers.csv“ zu schreiben. Mit dem Befehl „cat“ wird der Inhalt beider Dateien im Tabellenformat ausgegeben.
printf 'Originaldatei: \N '#Drucken Sie den Originalinhalt der CSV-Datei in tabellarischer Form
Katze Kunden.csv | Säulen, -T
awk 'BEGIN{FS=',';OFS=','}
{
for(Feld=1;Feld<=NF;Feld++)
{
if($field == '') $field='None'
}
}' Kunden.csv > Modifiedcustomers2.csv
printf ' \N Geänderte Datei: \N '
#Drucken Sie die neue CSV-Datei in tabellarischer Form
Katze Modifiedcustomers2.csv | Säulen, -T
Nach der Ausführung des Skripts erscheint folgende Ausgabe:
Beispiel 4: Drucken Sie die Gesamtzahl der Zeilen und Spalten der CSV-Datei
Erstellen Sie eine Bash-Datei mit dem folgenden Skript, das die Gesamtzahl der Zeilen und Spalten in der Datei „customers.csv“ zählt. Die Variable NR wird verwendet, um die Gesamtzahl der Zeilen der Datei zu drucken. Die Variable NF wird verwendet, um die Gesamtzahl der Felder der Datei zu drucken.
printf 'Originaldatei: \N '#Drucken Sie den Originalinhalt der CSV-Datei
Katze Kunden.csv
Echo
Echo -N „Zeilen gesamt:“
awk -F, 'END{print NR}' Kunden.csv
Echo -N „Spalten gesamt:“
awk -F, 'END{print NF}' Kunden.csv
Nach der Ausführung des Skripts erscheint die folgende Ausgabe. Die Gesamtzahl der Zeilen in der Datei beträgt 6 und die Gesamtzahl der Felder der Datei beträgt 5, die in der Ausgabe gedruckt werden:
Abschluss
In diesem Tutorial werden die Methoden zum Lesen einer CSV-Datei, zum Ändern der CSV-Datei und zum Zählen der Zeilen und Spalten der CSV-Datei mithilfe des Bash-Skripts gezeigt.