বাশ: লাইন পড়ার সময়

Bash While Read Line



যখন আপনি ব্যাশ স্ক্রিপ্টগুলিতে কাজ করছেন, কখনও কখনও আপনাকে লাইন দ্বারা একটি ফাইল লাইন পড়তে হতে পারে। একটি উদাহরণ দিয়ে ব্যাখ্যা করা যাক। আপনার একটি টেক্সট ফাইলে কিছু ডেটা আছে যা একটি স্ক্রিপ্ট ব্যবহার করে চালানো বা প্রক্রিয়া করা উচিত। সুতরাং, একটি টেক্সট ফাইল প্রক্রিয়া করার জন্য একটি বাশ স্ক্রিপ্ট চালানো অনেক ভিন্ন। একটি লাইন লাইন দ্বারা লাইন পড়ার জন্য আপনাকে একটি নির্দিষ্ট সিনট্যাক্স অনুসরণ করতে হবে। এই নিবন্ধটি আপনাকে ব্যাশের সময় লুপ ব্যবহার করে একটি ফাইল থেকে একটি লাইন পড়তে সাহায্য করবে।

যখন পড়ার লাইন এর প্রাথমিক সিনট্যাক্স

যখন লুপ ব্যবহার করে একটি ফাইল পড়তে বাশ শেলের জন্য নিম্নলিখিত সিনট্যাক্স ব্যবহার করা হয়:







যখন পড়ুন -আরলাইন;
কর
বের করে দিল '$ লাইন';
সম্পন্ন <ইনপুট ফাইল

উপরে উল্লিখিত সিনট্যাক্সে '-r' বিকল্পটি কমান্ড পড়ার জন্য প্রেরণ করা হয়েছে যা ব্যাকস্ল্যাশকে ব্যাখ্যা করা থেকে রক্ষা করে। 'ইনপুট_ ফাইল' বিকল্পটি আপনার ফাইলের নাম উপস্থাপন করেছে যা আপনি 'রিড' কমান্ড ব্যবহার করে অ্যাক্সেস করতে চান।



অভ্যন্তরীণ ক্ষেত্র বিভাজক সংক্ষিপ্তভাবে IFS হিসাবে ব্যবহার করা যেতে পারে রিড কমান্ডটি নাল স্ট্রিং -এ সেট করার আগে যা নেতৃস্থানীয় বা পিছনে থাকা হোয়াইটস্পেসকে ছাঁটা হতে বাধা দেয়।



যখন আইএফএস=পড়ুন -আরলাইন;
কর
বের করে দিল $ লাইন;
সম্পন্ন <ইনপুট ফাইল

Ctrl + Alt + t শর্টকাট ব্যবহার করে টার্মিনালটি খুলুন এবং তারপরে নিম্নলিখিত কমান্ডগুলি চালান।





উদাহরণ # 1: ফাইল পড়ার লাইন লাইন

আসুন একটি উদাহরণ নেওয়া যাক যার মধ্যে মনে করি আমাদের কাছে OS.txt নামে একটি ফাইল রয়েছে যার মধ্যে সমস্ত গুরুত্বপূর্ণ লিনাক্স বিতরণের নাম রয়েছে। যদি আপনি 'cat' কমান্ড ব্যবহার না করে একটি ফাইল পড়তে চান, তাহলে এই উদ্দেশ্যে আপনি নির্দিষ্ট কাজটি সম্পাদনের জন্য নিম্নলিখিত কমান্ডটি চালাতে পারেন। আমরা while লুপ ব্যবহার করব যা OS.txt ফাইল থেকে প্রতিটি লাইন পড়বে এবং প্রতিটি ধাপে একটি ভেরিয়েবল $ লাইনে বিষয়বস্তু সংরক্ষণ করবে যা আপনি পরে প্রদর্শন করতে পারেন।

OS.txt- এ লিনাক্স ডিস্ট্রিবিউশনের নিম্নলিখিত নাম আটকান



CentOS
উবুন্টু
ডেবিয়ান
LinuxMint $যখন পড়ুনলাইন;
কর
বের করে দিল $ লাইন;
সম্পন্ন <OS.txt


উপরের কমান্ড থেকে, আপনি টার্মিনাল উইন্ডোতে নিম্নলিখিত প্রতিক্রিয়া পাবেন:

উদাহরণ # 2: ব্যাশ স্ক্রিপ্ট ব্যবহার করে ফাইল পড়া

একটি ব্যাশ ফাইল তৈরি করুন এবং তারপরে ফাইলের বিষয়বস্তু পড়তে এই ফাইলে নীচে উল্লিখিত কোড যুক্ত করুন। আপনি আগের টেক্সট ফাইলটিকে একটি নতুন ভেরিয়েবল $ filename- এ সংরক্ষণ করতে পারেন এবং ভেরিয়েবল $ n প্রতিটি লাইনের মান রাখতে ব্যবহৃত হয়। এখন, while লুপ ব্যবহার করে আমরা একটি নির্দিষ্ট লাইন নম্বর সহ একটি ফাইল থেকে প্রতিটি লাইন পড়ব।

#!/বিন/ব্যাশ
ফাইলের নাম='OS.txt'
n=
যখন পড়ুনলাইন;
কর
# প্রতিটি লাইন পড়ার জন্য
বের করে দিল ওএস বিতরণ লাইন নং$ n:$ লাইন'
n= $((n+))
সম্পন্ন < $ filename

OSinfo.sh নামে ফাইলটি সংরক্ষণ করুন এবং উপরের ব্যাশ স্ক্রিপ্টটি চালানোর জন্য টার্মিনালে নিম্নলিখিত কমান্ডটি টাইপ করুন।

$বাশOSinfo.sh

এখন, মূল ফাইলের বিষয়বস্তু দেখতে cat কমান্ডটি চালান।

$বিড়ালOS.txt

ফাইল পড়ার বিকল্প পদ্ধতি

একটি কমান্ড থেকে ফাইলের নাম পাস করা

একটি ব্যাশ ফাইলে, আপনাকে নিম্নলিখিত কোড স্ক্রিপ্ট যুক্ত করতে হবে। এই স্ক্রিপ্টে, আমাদের একটি ফাইলের নাম যুক্তি হিসেবে নিতে হবে। প্রথমে, একটি আর্গুমেন্টের মান $ 1 ভেরিয়েবল দ্বারা পড়া হয় যার পড়ার জন্য একটি ফাইলের নাম রয়েছে। এটি চেক করবে যে ফাইলের নাম নির্দিষ্ট স্থানে বিদ্যমান এবং তারপর লুপ ব্যবহার করে এটি আগের উদাহরণের মতো লাইন দ্বারা একটি ফাইল লাইন পড়ে।

#!/বিন/ব্যাশ
ফাইলের নাম=$ 1
যখন পড়ুনলাইন;কর
# প্রতিটি লাইন পড়ছি
বের করে দিল $ লাইন
সম্পন্ন < $ ফাইল.txt

উপরোক্ত স্ক্রিপ্টটি চালানোর জন্য উপরের স্ক্রিপ্টটি 'Readline.sh' নামে সংরক্ষণ করুন এবং টার্মিনালে নিম্নলিখিত কমান্ডটি চালান:

উপরের আউটপুটে, আপনি লক্ষ্য করবেন যে ফাইল 'OSinfo.txt' একটি যুক্তি হিসাবে পাস করছে এবং অতিরিক্ত স্থানগুলি সরানোর পরে 'OSinfo.txt' এর বিষয়বস্তু প্রদর্শিত হবে। আপনি 'cat OSinfo.txt' চালিয়ে মূল ফাইলের বিষয়বস্তু প্রদর্শন করতে পারেন।

উপসংহার

এই প্রবন্ধে, আমরা আলোচনা করেছি কিভাবে ব্যাশ প্রোগ্রামিংয়ের সময় লুপ ব্যবহার করে লাইনগুলি পড়তে হয়। আমরা ব্যাশ স্ক্রিপ্ট ব্যবহার করে বিভিন্ন পদ্ধতি প্রয়োগ করেছি অথবা আপনি কেবল একটি টেক্সট ফাইল ব্যবহার করে একটি লাইন লাইন বাই লাইন টাস্ক করতে পারেন। আপনি যদি আরো উদাহরণ জানতে আগ্রহী হন তাহলে উপরে উল্লিখিত সিনট্যাক্স ব্যবহার করে আপনি আপনার সিস্টেমেও চালাতে পারেন। আমি আশা করি আপনি এই টিউটোরিয়ালটি উপভোগ করেছেন এবং আপনার জন্য অনন্য হবে। কোন ভুল হলে জেনে নেওয়া যাক।