Bash'te CSV Dosyasını Oku

Bash Te Csv Dosyasini Oku



CSV'nin tam biçimi Virgülle Ayrılmış Değer'dir. CSV dosyası, kodlayıcı tarafından verileri yarı yapılar tablo biçiminde depolayan birçok amaç için kullanılır. Dosyanın her satırı tablonun bir satırı olarak ele alınır ve satırın her alanı CSV dosyasında virgülle (,) ayrılır. Bu eğitimde açıklanan CSV dosyalarını okumak için Bash'te birçok yol vardır.

Önkoşullar:

Bu eğitim örneğini uygulamadan önce bir CSV dosyası oluşturmanız gerekir. Bu eğitimde kullanılan komut dosyasının çıktısını kontrol etmek için aşağıdaki içeriğe sahip “customers.csv” adlı bir CSV dosyası oluşturun. Bu dosyada 3. rd 4'ün alanları inci satır ve 6 inci satır boş.

Kimlik, Ad, E-posta, Adres, Mobil

101 , Cafer İkbal, Cafer @ gmail.com, 9 / Bir Dhanmondi Dhaka, + 8801762341425

102 , Kemal Hüseyin, Kemal @ gmail.com, 120 Mirpur Dakka, 8801988675345

103 Nirob Chowdhury 33 / 2 Jigatola Dakka, 8801754532312

104 Ferhin Hasan @ gmail.com < A href = 'boşluk' > , A > 10 Kadhalbagun Dakka, + 8801512875634

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

Bash'te CSV Dosyasını Okumanın Farklı Yolları

CSV dosyası, bir Bash betiği kullanılarak farklı şekillerde ayrıştırılabilir. Eğitimin bu bölümünde “customers.csv” dosyasını okumanın farklı yolları gösterilmektedir.







Örnek 1: CSV Dosyasının Orijinal İçeriğini Okuyun

'while' döngüsünü kullanarak 'customers.csv' dosyasının tüm içeriğini okuyan aşağıdaki komut dosyasıyla bir Bash dosyası oluşturun:



#!/bin/bash

#Dosya adını ayarla

dosya adı = 'müşteriler.csv'

#Her yinelemede dosyanın her satırını oku

sırasında Okumak veri

Yapmak

#Satırı yazdır

Eko $veri

Tamamlandı < $dosyaadı

Komut dosyası yürütüldükten sonra aşağıdaki çıktı görünür:







Örnek 2: Başlığı Büyük Harf Yaparak CSV Dosyasını Okuyun

“customers.csv” dosyasının ilk satırı dosyanın başlığını içerir. Dosyanın ilk satırını büyük harfle yazdıktan sonra 'customers.csv' dosyasının içeriğini yazdıran aşağıdaki komut dosyasıyla bir Bash dosyası oluşturun. Komut dosyasında, başlığı büyük harfle yazdıktan sonra dosyanın içeriğini yazdırmak için “awk” komutu kullanılır. “customers.csv” dosyasını okumak ve “updatedcustomers.csv” dosyasını yazmak için komut dosyasındaki FS ve OFS değerlerine virgül(,) atanır. Her iki dosyanın içeriğini yazdırmak için “cat” komutu kullanılır.

printf 'Orijinal dosya: \N '

#CSV dosyasının orijinal içeriğini yazdır

kedi cstomers.csv

#Başlığı büyük harfle yazdıktan sonra yeni bir CSV dosyası oluştur

awk 'BAŞLA{FS=',';OFS=','}

{

eğer(NR==1)

üst baskı($0)

başka

Yazdır

}'
müşteriler.csv > güncellenmişmüşteriler.csv

printf ' \N Değiştirilmiş Dosya: \N '

#Yeni CSV dosyasını yazdır

kedi güncellenmişmüşteriler.csv

Komut dosyası yürütüldükten sonra aşağıdaki çıktı görünür:



Örnek 3: CSV Dosyasının Boş Alanını 'Yok' ile Değiştirin

Boş alanı 'Yok' değeriyle değiştirdikten sonra 'customers.csv' dosyasının içeriğini yazdıran aşağıdaki komut dosyasıyla bir Bash dosyası oluşturun. Bu dosyada aşağıda belirtilen iki alan boştur. Komut dosyasında boş alanları değiştirdikten sonra dosyanın içeriğini yazdırmak için “awk” komutu kullanılır. “customers.csv” dosyasını okumak ve “updatedcustomers.csv” dosyasını yazmak için komut dosyasındaki FS ve OFS değerlerine virgül(,) atanır. Her iki dosyanın içeriğini tablo biçiminde yazdırmak için “cat” komutu kullanılır.

printf 'Orijinal dosya: \N '

#CSV dosyasının orijinal içeriğini tablo biçiminde yazdır

kedi müşteriler.csv | sütun -s, -T

awk 'BAŞLA{FS=',';OFS=','}

{

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

{

if($field == '') $field='Yok'

}

Yazdır

}'
müşteriler.csv > değiştirilmişmüşteriler2.csv

printf ' \N Değiştirilmiş Dosya: \N '

#Yeni CSV dosyasını tablo biçiminde yazdır

kedi değiştirilmişmüşteriler2.csv | sütun -s, -T

Komut dosyası yürütüldükten sonra aşağıdaki çıktı görünür:

Örnek 4: CSV Dosyasının Toplam Satır ve Sütun Sayısını Yazdırma

'customers.csv' dosyasındaki toplam satır ve sütun sayısını sayan aşağıdaki komut dosyasıyla bir Bash dosyası oluşturun. NR değişkeni, dosyanın toplam satır sayısını yazdırmak için kullanılır. NF değişkeni, dosyanın toplam alan sayısını yazdırmak için kullanılır.

printf 'Orijinal dosya: \N '

#CSV dosyasının orijinal içeriğini yazdır

kedi müşteriler.csv

Eko

Eko -N 'Toplam satır sayısı:'

awk -F, 'END{NR yazdır}' müşteriler.csv

Eko -N 'Toplam sütunlar:'

awk -F, 'END{NF ​​yazdır}' müşteriler.csv

Komut dosyasını çalıştırdıktan sonra aşağıdaki çıktı görünür. Dosyadaki toplam satır sayısı 6'dır ve dosyanın çıktıda yazdırılan toplam alanı 5'tir:

Çözüm

Bash betiğini kullanarak bir CSV dosyasını okuma, CSV dosyasını değiştirme ve CSV dosyasının satırlarını ve sütunlarını sayma yöntemleri bu eğitimde gösterilmektedir.