পূর্বশর্ত:
এই টিউটোরিয়ালের উদাহরণটি অনুশীলন করার আগে আপনাকে একটি 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 ফাইলের সারি এবং কলাম গণনা করা এই টিউটোরিয়ালে দেখানো হয়েছে।