Prečítajte si súbor CSV v Bash

Precitajte Si Subor Csv V Bash



Úplná forma CSV je Comma Separated Value. Súbor CSV používa kódovač na mnohé účely, ktoré ukladajú údaje v tabuľkovom formáte pološtruktúr. Každý riadok súboru sa považuje za riadok tabuľky a každé pole riadka je v súbore CSV oddelené čiarkou (,). V Bash existuje veľa spôsobov na čítanie súborov CSV, ktoré sú vysvetlené v tomto návode.

Predpoklady:

Pred precvičením príkladu tohto návodu musíte vytvoriť súbor CSV. Vytvorte súbor CSV s názvom „customers.csv“ s nasledujúcim obsahom, aby ste skontrolovali výstup skriptu, ktorý sa používa v tomto návode. V tomto súbore je 3 rd polia 4 th riadok a 6 th riadok je prázdny.

ID, meno, email, adresa, mobil

101 , Džafar Iqbal, Džafar @ gmail.com, 9 / A 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 = 'prázdne' > , a > 10 Kadhalbagun Dhaka, + 8801512875634

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

Rôzne spôsoby čítania súboru CSV v Bash

Súbor CSV je možné analyzovať rôznymi spôsobmi pomocou skriptu Bash. V tejto časti návodu sú uvedené rôzne spôsoby čítania súboru „customers.csv“.







Príklad 1: Prečítajte si pôvodný obsah súboru CSV

Vytvorte súbor Bash pomocou nasledujúceho skriptu, ktorý načíta celý obsah súboru „customers.csv“ pomocou cyklu „while“:



#!/bin/bash

#Nastavte názov súboru

názov súboru = 'customers.csv'

# Prečítajte si každý riadok súboru v každej iterácii

zatiaľ čo čítať údajov

robiť

#Vytlačte riadok

ozvena $data

hotový < $filename

Po vykonaní skriptu sa zobrazí nasledujúci výstup:







Príklad 2: Prečítajte si súbor CSV zadaním veľkých písmen v hlavičke

Prvý riadok súboru „customers.csv“ obsahuje hlavičku súboru. Vytvorte súbor Bash pomocou nasledujúceho skriptu, ktorý vytlačí obsah súboru „customers.csv“ po použití veľkých písmen v prvom riadku súboru. Príkaz „awk“ sa v skripte používa na tlač obsahu súboru po použití veľkých písmen v hlavičke. Čiarka (,) je priradená v hodnotách FS a OFS v skripte na čítanie súboru „customers.csv“ a zapisovanie súboru „updatedcustomers.csv“. Príkaz „cat“ sa používa na tlač obsahu oboch súborov.

printf 'Pôvodný súbor: \n '

#Vytlačte pôvodný obsah súboru CSV

kat cstomers.csv

# Po použití veľkých písmen v hlavičke vytvorte nový súbor CSV

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

{

if(NR==1)

tlačiť vrchnák (0 USD)

inak

vytlačiť

}'
zákazníci.csv > updatedcustomers.csv

printf ' \n Upravený súbor: \n '

#Vytlačte nový súbor CSV

kat updatedcustomers.csv

Po vykonaní skriptu sa zobrazí nasledujúci výstup:



Príklad 3: Nahraďte prázdne pole súboru CSV textom „Žiadne“

Vytvorte súbor Bash pomocou nasledujúceho skriptu, ktorý vytlačí obsah súboru „customers.csv“ po úprave prázdneho poľa hodnotou „None“. V tomto súbore sú prázdne dve polia, ktoré sú uvedené nižšie. Príkaz „awk“ sa v skripte používa na vytlačenie obsahu súboru po úprave prázdnych polí. Čiarka (,) je priradená v hodnotách FS a OFS v skripte na čítanie súboru „customers.csv“ a zapisovanie súboru „updatedcustomers.csv“. Príkaz „cat“ sa používa na tlač obsahu oboch súborov v tabuľkovom formáte.

printf 'Pôvodný súbor: \n '

#Vytlačte pôvodný obsah súboru CSV vo forme tabuľky

kat zákazníci.csv | stĺpec -s, -t

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

{

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

{

if($field == '') $field='None'

}

vytlačiť

}'
zákazníci.csv > upravení zákazníci2.csv

printf ' \n Upravený súbor: \n '

#Vytlačte nový súbor CSV vo forme tabuľky

kat upravení zákazníci2.csv | stĺpec -s, -t

Po vykonaní skriptu sa zobrazí nasledujúci výstup:

Príklad 4: Vytlačte celkový počet riadkov a stĺpcov súboru CSV

Vytvorte súbor Bash pomocou nasledujúceho skriptu, ktorý počíta celkový počet riadkov a stĺpcov v súbore „customers.csv“. Premenná NR sa používa na tlač celkového počtu riadkov súboru. Premenná NF sa používa na tlač celkového počtu polí súboru.

printf 'Pôvodný súbor: \n '

#Vytlačte pôvodný obsah súboru CSV

kat zákazníci.csv

ozvena

ozvena -n 'Celkový počet riadkov:'

awk -F, 'END{print NR}' zákazníci.csv

ozvena -n 'Celkový počet stĺpcov:'

awk -F, 'END{print NF}' zákazníci.csv

Po vykonaní skriptu sa zobrazí nasledujúci výstup. Celkový počet riadkov v súbore je 6 a celkový počet polí súboru je 5, ktoré sa vytlačia vo výstupe:

Záver

Metódy čítania súboru CSV, úpravy súboru CSV a počítania riadkov a stĺpcov súboru CSV pomocou skriptu Bash sú uvedené v tomto návode.