Bash میں CSV فائل پڑھیں

Bash My Csv Fayl P Y



CSV کی مکمل شکل Comma Separated Value ہے۔ CSV فائل کوڈر بہت سے مقاصد کے لیے استعمال کرتا ہے جو ڈیٹا کو سیمی اسٹرکچر ٹیبلر فارمیٹ میں اسٹور کرتا ہے۔ فائل کی ہر لائن کو ٹیبل کی ایک قطار کے طور پر سمجھا جاتا ہے اور قطار کی ہر فیلڈ کو CSV فائل میں کوما (،) سے الگ کیا جاتا ہے۔ CSV فائلوں کو پڑھنے کے لیے Bash میں بہت سے طریقے موجود ہیں جن کی وضاحت اس ٹیوٹوریل میں کی گئی ہے۔

شرائط:

اس ٹیوٹوریل کی مثال پر عمل کرنے سے پہلے آپ کو ایک CSV فائل بنانا ہوگی۔ اس ٹیوٹوریل میں استعمال ہونے والے اسکرپٹ کے آؤٹ پٹ کو چیک کرنے کے لیے درج ذیل مواد کے ساتھ 'customers.csv' نامی CSV فائل بنائیں۔ اس فائل میں، 3 rd 4 کے میدان ویں لائن اور 6 ویں لائن خالی ہے.

ID، نام، ای میل، پتہ، موبائل

101 ، جعفر اقبال، جعفر @ gmail.com، 9 / ایک دھانمنڈی ڈھاکہ، + 8801762341425

102 ، کمال حسین، کمال @ gmail.com، 120 میرپور ڈھاکہ، 8801988675345

103 نیروب چودھری 33 / 2 جگاٹولا ڈھاکہ، 8801754532312

104 فرحین حسن @ gmail.com < a href = 'خالی' > , a > 10 کدلباگن ڈھاکہ، + 8801512875634

105 , Md رحیم،، 2 / بی دھان منڈی ڈھاکہ، + 8801700453423

Bash میں CSV فائل کو پڑھنے کے مختلف طریقے

Bash اسکرپٹ کا استعمال کرتے ہوئے CSV فائل کو مختلف طریقوں سے پارس کیا جا سکتا ہے۔ 'customers.csv' فائل کو پڑھنے کے مختلف طریقے ٹیوٹوریل کے اس حصے میں دکھائے گئے ہیں۔







مثال 1: CSV فائل کا اصل مواد پڑھیں

درج ذیل اسکرپٹ کے ساتھ ایک Bash فائل بنائیں جو 'while' لوپ کا استعمال کرتے ہوئے 'customers.csv' فائل کے مکمل مواد کو پڑھے:



#!/bin/bash

# فائل کا نام سیٹ کریں۔

فائل کا نام = 'customers.csv'

# ہر تکرار میں فائل کی ہر لائن کو پڑھیں

جبکہ پڑھیں ڈیٹا

کیا

# لائن پرنٹ کریں۔

بازگشت ڈیٹا

ہو گیا < $filename

اسکرپٹ پر عمل کرنے کے بعد درج ذیل آؤٹ پٹ ظاہر ہوتا ہے:







مثال 2: ہیڈر کو کیپیٹلائز کرکے CSV فائل کو پڑھیں

'customers.csv' فائل کی پہلی لائن فائل کی سرخی پر مشتمل ہے۔ درج ذیل اسکرپٹ کے ساتھ ایک Bash فائل بنائیں جو فائل کی پہلی لائن کو بڑے کرنے کے بعد 'customers.csv' فائل کے مواد کو پرنٹ کرتی ہے۔ 'awk' کمانڈ کا استعمال اسکرپٹ میں ہیڈر کو بڑا کرنے کے بعد فائل کے مواد کو پرنٹ کرنے کے لیے کیا جاتا ہے۔ 'customers.csv' فائل کو پڑھنے اور 'updatedcustomers.csv' فائل لکھنے کے لیے کوما(،) کو اسکرپٹ میں FS اور OFS اقدار میں تفویض کیا گیا ہے۔ 'کیٹ' کمانڈ کا استعمال دونوں فائلوں کے مواد کو پرنٹ کرنے کے لیے کیا جاتا ہے۔

printf اصل فائل: \n '

#CSV فائل کے اصل مواد کو پرنٹ کریں۔

کیٹ cstomers.csv

# ہیڈر کیپٹلائز کرنے کے بعد ایک نئی CSV فائل بنائیں

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

{

اگر(NR==1)

پرنٹ ٹاپر($0)

اور

پرنٹ کریں

}'
customers.csv > updatecustomers.csv

printf ' \n ترمیم شدہ فائل: \n '

# نئی CSV فائل پرنٹ کریں۔

کیٹ updatecustomers.csv

اسکرپٹ پر عمل کرنے کے بعد درج ذیل آؤٹ پٹ ظاہر ہوتا ہے:



مثال 3: CSV فائل کی خالی فیلڈ کو 'کوئی نہیں' سے تبدیل کریں۔

درج ذیل اسکرپٹ کے ساتھ ایک Bash فائل بنائیں جو 'customers.csv' فائل کے مواد کو 'کوئی نہیں' ویلیو کے ساتھ خالی فیلڈ میں ترمیم کرنے کے بعد پرنٹ کرتی ہے۔ اس فائل میں دو فیلڈز خالی ہیں جن کا ذکر ذیل میں کیا گیا ہے۔ 'awk' کمانڈ کو اسکرپٹ میں خالی فیلڈز میں ترمیم کرنے کے بعد فائل کے مواد کو پرنٹ کرنے کے لیے استعمال کیا جاتا ہے۔ 'customers.csv' فائل کو پڑھنے اور 'updatedcustomers.csv' فائل لکھنے کے لیے کوما(،) کو اسکرپٹ میں FS اور OFS اقدار میں تفویض کیا گیا ہے۔ 'کیٹ' کمانڈ کا استعمال ٹیبلر فارمیٹ میں دونوں فائلوں کے مواد کو پرنٹ کرنے کے لیے کیا جاتا ہے۔

printf اصل فائل: \n '

#CSV فائل کے اصل مواد کو ٹیبلر شکل میں پرنٹ کریں۔

کیٹ customers.csv | کالم، -t

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

{

برائے (فیلڈ=1؛ فیلڈ<=NF؛ فیلڈ++)

{

اگر ($field == '') $field='کوئی نہیں'

}

پرنٹ کریں

}'
customers.csv > modifiedcustomers2.csv

printf ' \n ترمیم شدہ فائل: \n '

#نئی CSV فائل کو ٹیبلر شکل میں پرنٹ کریں۔

کیٹ modifiedcustomers2.csv | کالم، -t

اسکرپٹ پر عمل کرنے کے بعد درج ذیل آؤٹ پٹ ظاہر ہوتا ہے:

مثال 4: CSV فائل کی قطاروں اور کالموں کی کل تعداد پرنٹ کریں۔

درج ذیل اسکرپٹ کے ساتھ ایک Bash فائل بنائیں جو 'customers.csv' فائل میں قطاروں اور کالموں کی کل تعداد کو شمار کرے۔ NR متغیر کا استعمال فائل کی قطاروں کی کل تعداد کو پرنٹ کرنے کے لیے کیا جاتا ہے۔ NF متغیر فائل کے فیلڈز کی کل تعداد پرنٹ کرنے کے لیے استعمال ہوتا ہے۔

printf اصل فائل: \n '

#CSV فائل کے اصل مواد کو پرنٹ کریں۔

کیٹ customers.csv

بازگشت

بازگشت -n 'کل قطاریں:'

awk -F، 'END{print NR}' customers.csv

بازگشت -n 'کل کالم:'

awk -F، 'END{print NF}' customers.csv

اسکرپٹ پر عمل کرنے کے بعد درج ذیل آؤٹ پٹ ظاہر ہوتا ہے۔ فائل میں کل لائنیں 6 ہیں اور فائل کے کل فیلڈز 5 ہیں جو آؤٹ پٹ میں پرنٹ ہوتے ہیں۔

نتیجہ

CSV فائل کو پڑھنے، CSV فائل میں ترمیم کرنے، اور Bash اسکرپٹ کا استعمال کرتے ہوئے CSV فائل کی قطاروں اور کالموں کو گننے کے طریقے اس ٹیوٹوریل میں دکھائے گئے ہیں۔