Lesen Sie die CSV-Datei in Bash

Lesen Sie Die Csv Datei In Bash



Die vollständige Form von CSV ist Comma Separated Value. Die CSV-Datei wird vom Programmierer für viele Zwecke verwendet, bei denen die Daten im Tabellenformat mit Halbstrukturen gespeichert werden. Jede Zeile der Datei wird als Zeile der Tabelle behandelt und jedes Feld der Zeile wird in der CSV-Datei durch ein Komma (,) getrennt. In Bash gibt es viele Möglichkeiten, die CSV-Dateien zu lesen, die in diesem Tutorial erklärt werden.

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, Mobiltelefon

101 , 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

drucken

}'
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'

}

drucken

}'
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.