ব্যাশে CSV ফাইল পড়ুন

Byase Csv Pha Ila Paruna



CSV এর পূর্ণরূপ হল কমা বিভাজিত মান। CSV ফাইলটি কোডার দ্বারা অনেক উদ্দেশ্যে ব্যবহার করা হয় যা সেমি-স্ট্রাকচার ট্যাবুলার ফরম্যাটে ডেটা সংরক্ষণ করে। ফাইলের প্রতিটি লাইনকে টেবিলের একটি সারি হিসাবে বিবেচনা করা হয় এবং সারির প্রতিটি ক্ষেত্র CSV ফাইলে একটি কমা (,) দ্বারা পৃথক করা হয়। এই টিউটোরিয়ালে ব্যাখ্যা করা CSV ফাইলগুলি পড়ার জন্য Bash-এ অনেক উপায় রয়েছে।

পূর্বশর্ত:

এই টিউটোরিয়ালের উদাহরণটি অনুশীলন করার আগে আপনাকে একটি CSV ফাইল তৈরি করতে হবে। এই টিউটোরিয়ালে ব্যবহৃত স্ক্রিপ্টের আউটপুট পরীক্ষা করতে নিম্নলিখিত বিষয়বস্তু সহ “customers.csv” নামে একটি CSV ফাইল তৈরি করুন। এই ফাইলে, 3 rd 4 এর ক্ষেত্র লাইন এবং 6 লাইন খালি।

আইডি, নাম, ইমেইল, ঠিকানা, মোবাইল

101 , জাফর ইকবাল, জাফর @ gmail.com, 9 / A Dhanmondi Dhaka, + 8801762341425

102 কামাল হোসেন, কামাল @ gmail.com, 120 মিরপুর ঢাকা, 8801988675345

103 , Nirob Chowdhury,, 33 / 2 জিগাতলা ঢাকা, 8801754532312

104 ফারহিন হাসান @ gmail.com < href = 'শূন্য' > , > 10 কাধলবাগুন ঢাকা, + 8801512875634

105 , মো. রহিম,, 2 / B Dhanmondi Dhaka, + 8801700453423

ব্যাশে CSV ফাইল পড়ার বিভিন্ন উপায়

ব্যাশ স্ক্রিপ্ট ব্যবহার করে CSV ফাইলটিকে বিভিন্ন উপায়ে পার্স করা যায়। 'customers.csv' ফাইলটি পড়ার বিভিন্ন উপায় টিউটোরিয়ালের এই অংশে দেখানো হয়েছে।







উদাহরণ 1: CSV ফাইলের মূল বিষয়বস্তু পড়ুন

নিম্নলিখিত স্ক্রিপ্টের সাথে একটি ব্যাশ ফাইল তৈরি করুন যা 'while' লুপ ব্যবহার করে 'customers.csv' ফাইলের সম্পূর্ণ বিষয়বস্তু পড়ে:



#!/bin/bash

# ফাইলের নাম সেট করুন

ফাইলের নাম = 'customers.csv'

# প্রতিটি পুনরাবৃত্তিতে ফাইলের প্রতিটি লাইন পড়ুন

যখন পড়া তথ্য

করতে

# লাইনটি প্রিন্ট করুন

প্রতিধ্বনি $ডেটা

সম্পন্ন < $filename

স্ক্রিপ্ট চালানোর পরে নিম্নলিখিত আউটপুট প্রদর্শিত হয়:







উদাহরণ 2: শিরোনাম বড় করে CSV ফাইল পড়ুন

“customers.csv” ফাইলের প্রথম লাইনে ফাইলটির শিরোনাম রয়েছে। নিম্নলিখিত স্ক্রিপ্ট সহ একটি ব্যাশ ফাইল তৈরি করুন যা ফাইলের প্রথম লাইনকে বড় করার পরে 'customers.csv' ফাইলের বিষয়বস্তু প্রিন্ট করে। হেডার বড় করার পর ফাইলের বিষয়বস্তু প্রিন্ট করতে স্ক্রিপ্টে 'awk' কমান্ড ব্যবহার করা হয়। 'customers.csv' ফাইলটি পড়তে এবং 'updatedcustomers.csv' ফাইলটি লিখতে স্ক্রিপ্টের FS এবং OFS মানগুলিতে কমা(,) বরাদ্দ করা হয়েছে৷ 'বিড়াল' কমান্ডটি উভয় ফাইলের বিষয়বস্তু প্রিন্ট করতে ব্যবহৃত হয়।

printf 'মূল ফাইল: \n '

# CSV ফাইলের মূল বিষয়বস্তু প্রিন্ট করুন

বিড়াল cstomers.csv

# শিরোনাম বড় করার পরে একটি নতুন CSV ফাইল তৈরি করুন

awk 'শুরু{FS=',';OFS=','}

{

যদি(NR==1)

প্রিন্ট টপার($0)

অন্য

ছাপা

}'
customers.csv > updatecustomers.csv

printf ' \n সংশোধিত ফাইল: \n '

# নতুন CSV ফাইল প্রিন্ট করুন

বিড়াল updatecustomers.csv

স্ক্রিপ্ট চালানোর পরে নিম্নলিখিত আউটপুট প্রদর্শিত হয়:



উদাহরণ 3: CSV ফাইলের খালি ক্ষেত্রটিকে 'কোনও নয়' দিয়ে প্রতিস্থাপন করুন

নিম্নলিখিত স্ক্রিপ্টের সাথে একটি ব্যাশ ফাইল তৈরি করুন যা 'কাস্টমার্স. csv' ফাইলের বিষয়বস্তু প্রিন্ট করে 'কোনটি নয়' মান দিয়ে খালি ক্ষেত্র পরিবর্তন করার পরে। এই ফাইলটিতে দুটি ক্ষেত্র খালি রয়েছে যা নিম্নলিখিতটিতে উল্লেখ করা হয়েছে। 'awk' কমান্ডটি খালি ক্ষেত্রগুলি সংশোধন করার পরে ফাইলের বিষয়বস্তু প্রিন্ট করতে স্ক্রিপ্টে ব্যবহৃত হয়। 'customers.csv' ফাইলটি পড়তে এবং 'updatedcustomers.csv' ফাইলটি লিখতে স্ক্রিপ্টের FS এবং OFS মানগুলিতে কমা(,) বরাদ্দ করা হয়েছে৷ 'বিড়াল' কমান্ডটি ট্যাবুলার ফর্ম্যাটে উভয় ফাইলের বিষয়বস্তু মুদ্রণ করতে ব্যবহৃত হয়।

printf 'মূল ফাইল: \n '

# CSV ফাইলের মূল বিষয়বস্তু ট্যাবুলার আকারে প্রিন্ট করুন

বিড়াল customers.csv | কলাম, -t

awk 'শুরু{FS=',';OFS=','}

{

জন্য(ক্ষেত্র=1;ক্ষেত্র<=NF;ক্ষেত্র++)

{

যদি($field == '') $field='None'

}

ছাপা

}'
customers.csv > modifiedcustomers2.csv

printf ' \n সংশোধিত ফাইল: \n '

#টেবুলার আকারে নতুন CSV ফাইল প্রিন্ট করুন

বিড়াল modifiedcustomers2.csv | কলাম, -t

স্ক্রিপ্ট চালানোর পরে নিম্নলিখিত আউটপুট প্রদর্শিত হয়:

উদাহরণ 4: CSV ফাইলের সারি এবং কলামের মোট সংখ্যা প্রিন্ট করুন

নিম্নলিখিত স্ক্রিপ্ট সহ একটি ব্যাশ ফাইল তৈরি করুন যা 'customers.csv' ফাইলে সারি এবং কলামের মোট সংখ্যা গণনা করে৷ ফাইলের মোট সারির সংখ্যা প্রিন্ট করতে NR ভেরিয়েবল ব্যবহার করা হয়। ফাইলের মোট ফিল্ড সংখ্যা প্রিন্ট করতে NF ভেরিয়েবল ব্যবহার করা হয়।

printf 'মূল ফাইল: \n '

# CSV ফাইলের মূল বিষয়বস্তু প্রিন্ট করুন

বিড়াল customers.csv

প্রতিধ্বনি

প্রতিধ্বনি -n 'মোট সারি:'

awk -এফ, 'শেষ{প্রিন্ট NR}' customers.csv

প্রতিধ্বনি -n 'মোট কলাম:'

awk -এফ, 'END{print NF}' customers.csv

স্ক্রিপ্ট চালানোর পরে নিম্নলিখিত আউটপুট উপস্থিত হয়। ফাইলের মোট লাইন 6 এবং ফাইলের মোট ক্ষেত্র হল 5 যা আউটপুটে মুদ্রিত হয়:

উপসংহার

ব্যাশ স্ক্রিপ্ট ব্যবহার করে একটি CSV ফাইল পড়ার পদ্ধতি, CSV ফাইলটি পরিবর্তন করা এবং CSV ফাইলের সারি এবং কলাম গণনা করা এই টিউটোরিয়ালে দেখানো হয়েছে।