Przeczytaj plik CSV w Bash

Przeczytaj Plik Csv W Bash



Pełna forma pliku CSV to wartość oddzielona przecinkami. Plik CSV jest używany przez programistę do wielu celów, które przechowują dane w formacie tabelarycznym półstruktur. Każdy wiersz pliku jest traktowany jako wiersz tabeli, a każde pole wiersza jest oddzielone przecinkiem (,) w pliku CSV. W Bash istnieje wiele sposobów odczytywania plików CSV, które zostały wyjaśnione w tym samouczku.

Wymagania wstępne:

Przed przećwiczeniem przykładu z tego samouczka musisz utworzyć plik CSV. Utwórz plik CSV o nazwie „customers.csv” z następującą zawartością, aby sprawdzić dane wyjściowe skryptu używanego w tym samouczku. W tym pliku 3 r & D pola 4 cz linia i 6 cz linia jest pusta.

Identyfikator, imię i nazwisko, adres e-mail, adres, telefon komórkowy

101 , Jafar Iqbal, Jafar @ gmail.com, 9 / Dhanmondi Dhaka, + 8801762341425

102 , Kamal Hossain, Kamal @ gmail.com, 120 Mirpur Dhaka, 8801988675345

103 Nirob Chowdhury 33 / 2 Jigatola Dhaka, 8801754532312

104 Farheena Hasana @ gmail.com < A href = 'pusty' > , A > 10 Kadhalbagun Dhaka, + 8801512875634

105 , Md. Rahim,, 2 / B Dhanmondi Dhaka, + 8801700453423

Różne sposoby odczytywania pliku CSV w Bash

Plik CSV można analizować na różne sposoby za pomocą skryptu Bash. W tej części samouczka przedstawiono różne sposoby odczytywania pliku „customers.csv”.







Przykład 1: Przeczytaj oryginalną zawartość pliku CSV

Utwórz plik Bash za pomocą następującego skryptu, który odczytuje pełną zawartość pliku „customers.csv” za pomocą pętli „while”:



#!/bin/bash

#Ustaw nazwę pliku

Nazwa pliku = „klienci.csv”

#Przeczytaj każdy wiersz pliku w każdej iteracji

chwila Czytać dane

Do

#Wydrukuj wiersz

Echo $dane

zrobione < $nazwa pliku

Po wykonaniu skryptu pojawia się następujący komunikat:







Przykład 2: Przeczytaj plik CSV, pisząc nagłówek wielkimi literami

Pierwszy wiersz pliku „customers.csv” zawiera nagłówek pliku. Utwórz plik Bash za pomocą następującego skryptu, który drukuje zawartość pliku „customers.csv” po zapisaniu pierwszego wiersza pliku wielką literą. Polecenie „awk” jest używane w skrypcie do drukowania zawartości pliku po nagłówku wielkimi literami. Przecinek (,) jest przypisywany w wartościach FS i OFS w skrypcie, aby odczytać plik „customers.csv” i zapisać plik „updatedcustomers.csv”. Polecenie „cat” służy do drukowania zawartości obu plików.

drukujf 'Oryginalny plik: \N '

#Wydrukuj oryginalną zawartość pliku CSV

kot cstomers.csv

#Utwórz nowy plik CSV po wpisaniu nagłówka wielkimi literami

awk 'BEGIN{FS=',';OFS=','}

{

jeśli(NR==1)

nakładka na nadruk (0 USD)

w przeciwnym razie

wydrukować

}'
klienci.csv > zaktualizowaniklienci.csv

drukujf ' \N Zmodyfikowany plik: \N '

#Wydrukuj nowy plik CSV

kot zaktualizowaniklienci.csv

Po wykonaniu skryptu pojawia się następujący komunikat:



Przykład 3: Zamień puste pole pliku CSV na „Brak”

Utwórz plik Bash za pomocą następującego skryptu, który drukuje zawartość pliku „customers.csv” po zmodyfikowaniu pustego pola wartością „Brak”. Dwa pola w tym pliku są puste, o których mowa poniżej. Polecenie „awk” służy w skrypcie do wydrukowania zawartości pliku po zmodyfikowaniu pustych pól. Przecinek (,) jest przypisywany w wartościach FS i OFS w skrypcie, aby odczytać plik „customers.csv” i zapisać plik „updatedcustomers.csv”. Polecenie „cat” służy do drukowania zawartości obu plików w formacie tabelarycznym.

drukujf 'Oryginalny plik: \N '

#Wydrukuj oryginalną zawartość pliku CSV w formie tabelarycznej

kot klienci.csv | kolumny -s, -T

awk 'BEGIN{FS=',';OFS=','}

{

for(pole=1;pole<=NF;pole++)

{

if($field == '') $field='Brak'

}

wydrukować

}'
klienci.csv > zmodyfikowani klienci2.csv

drukujf ' \N Zmodyfikowany plik: \N '

#Wydrukuj nowy plik CSV w formie tabelarycznej

kot zmodyfikowani klienci2.csv | kolumny -s, -T

Po wykonaniu skryptu pojawia się następujący komunikat:

Przykład 4: Wydrukuj całkowitą liczbę wierszy i kolumn pliku CSV

Utwórz plik Bash za pomocą następującego skryptu, który zlicza całkowitą liczbę wierszy i kolumn w pliku „customers.csv”. Zmienna NR służy do drukowania całkowitej liczby wierszy pliku. Zmienna NF służy do drukowania całkowitej liczby pól pliku.

drukujf 'Oryginalny plik: \N '

#Wydrukuj oryginalną zawartość pliku CSV

kot klienci.csv

Echo

Echo -N „Całkowita liczba wierszy:”

awk -F, 'KONIEC{drukuj NR}' klienci.csv

Echo -N „Suma kolumn:”

awk -F, 'KONIEC{drukuj NF}' klienci.csv

Po wykonaniu skryptu pojawia się następujący wynik. Łączna liczba wierszy w pliku to 6, a łączna liczba pól pliku to 5, które są drukowane na wyjściu:

Wniosek

W tym samouczku przedstawiono metody odczytywania pliku CSV, modyfikowania pliku CSV oraz liczenia wierszy i kolumn pliku CSV za pomocą skryptu Bash.