একটি ডিরেক্টরিতে ফাইলের মাধ্যমে বাশ লুপ

Bash Loop Through Files Directory



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

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







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



$বাশ-রূপান্তর



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





প্রথম ধাপ হল একটি ডিরেক্টরি তৈরি করা। আমরা abc ডিরেক্টরিটির একটি নমুনা নাম নিয়েছি। কমান্ডটি কার্যকর করে একটি ডিরেক্টরি তৈরি করুন।

$mkdirabc



ডাইরেক্টরি তৈরির পর, এখন আপনাকে এর উপর সমস্ত কমান্ড করতে হবে। সুতরাং ডিরেক্টরি তৈরির পরে, সেই ডিরেক্টরিতে স্যুইচ করুন। নীচের উদ্ধৃত কমান্ডটি ব্যবহার করুন:

$সিডিabc

ডিরেক্টরিতে যাওয়ার পর এখন টাচ কমান্ড ব্যবহার করে কিছু ফাইল তৈরি করুন।

$স্পর্শfile1.txt

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

$বের করে দিললিনাক্স, উবুন্টু, পোস্টগ্রেসকিউএল>file7.txt

এই ফাইলটি একটি সাধারণ ডিরেক্টরিতে তৈরি করা হয়েছে যা বর্তমানে ডিফল্টরূপে চলছে। তাই নতুন তৈরি করা ডিরেক্টরির নাম কমান্ড প্রম্পটের সাথে যোগ করা হয়নি। আপনি স্পর্শ কমান্ডে একটি পরিসীমা এবং সম্প্রসারণ ব্যবহার করে ফাইল তৈরি করতে পারেন।

$স্পর্শফাইল-{..8}.txt

.Txt এক্সটেনশনের নতুন ফাইলগুলিতে এই কমান্ড ব্যবহার করে একটি একক কমান্ড ব্যবহার করে তৈরি করা হবে।

এর পরে, এখন আপনি নতুন তৈরি করা ডিরেক্টরিটির মাধ্যমে লুপ করতে পারেন। ফাইলের নাম প্রদর্শন করুন। ডিরেক্টরিতে উপস্থিত ফাইলগুলির মাধ্যমে আমাদের লুপ করতে হয়, আমাদের একটি লুপ দরকার। লুপগুলি ব্যবহার করতে খুব কার্যকর কারণ তারা কম সময়ে ডেটা নিয়ে আসে, যার জন্য কম ইনপুট প্রয়োজন। এখানে আমরা a for loop ব্যবহার করব। এই লুপ ব্যবহার করে, প্রতিটি ফাইলের নাম পরবর্তী লাইনে দেখানো হবে।

$জন্য ফাইল ভিতরে *;কর বের করে দিল $ ফাইল;সম্পন্ন

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

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

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

$জন্য ফাইল ভিতরে *;কর বের করে দিল -২ $ ফাইলin n লিনাক্স উবুন্টু> $ ফাইল;সম্পন্ন

কমান্ডটি কার্যকর করার পরে, আমাদের তৈরি করা প্রতিটি ফাইলে মান প্রবেশ করা হয়েছে। যখন প্রতিধ্বনি দিয়ে ব্যবহার করা হয়, তখন '-e' পতাকা ফাইলটিতে নতুন লাইন সংরক্ষণ করবে। প্রবেশ করা ডেটা দেখতে, আপনি 'abc' ডিরেক্টরিতে নেভিগেট করতে পারেন। এখন যে কোন টেক্সট ফাইল খুলুন। ফাইলটি আর খালি নেই।

'$ ফাইল ফাইলে প্রথমে ফাইলের নাম দেখাবে, এবং আপনার প্রবেশ করা ডেটা দ্বিতীয় লাইনে প্রিভিউ হবে কারণ after n এর পরে ব্যবহৃত শব্দগুলিকে অন্য লাইনে স্থানান্তর করতে ব্যবহৃত হয়। আপনি কমান্ডের মাধ্যমে প্রবেশ করা ডেটাও পরীক্ষা করতে পারেন।

$জন্য ফাইল ভিতরে *;কর বিড়াল $ ফাইল;সম্পন্ন

ডিরেক্টরির সমস্ত ফাইলে উপস্থিত ডেটা আনতে Cat কমান্ড ব্যবহার করা হয়।

ডেটা প্রবেশ করা এবং এটি আনার পদ্ধতি উভয়ই একক কমান্ডের মাধ্যমে করা যেতে পারে।

$জন্য ফাইল ভিতরে *;কর বের করে দিল-এবং$ ফাইলb n ব্যাশ প্রোগ্রামিং> $ ফাইল;বিড়াল $ ফাইল;সম্পন্ন

প্রথম ধাপ হল ফাইলটিতে ডেটা লেখা এবং তারপর এটি প্রদর্শন করা। যখন আপনি কমান্ডটি চালান, আউটপুটটি নিম্নরূপ হবে:

প্রতিটি ফাইলে একই মান রয়েছে। এটি 'ফর' লুপের কারণে।

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

$জন্য ফাইল ভিতরে *;কর cp $ ফাইল $ ফাইল। পিছনে;সম্পন্ন;

Cp কীওয়ার্ড সব ফাইলের ব্যাকআপ নিতে ব্যবহৃত হয়। এখন যে ফাইলগুলিতে এই কমান্ডটি প্রয়োগ করা হয়েছে তা দেখতে। আমরা কমান্ডটি ব্যবহার করি:

$ls- দ্য

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

আমরা যদি শুধু jpeg ফাইল চাই। আমরা কমান্ডে এটি ব্যবহার করব

$জন্য ফাইল ভিতরে *.jpeg;কর বের করে দিল $ ফাইল;সম্পন্ন

এটি শুধুমাত্র ছবির নাম নিয়ে আসবে।

একটি সহজ অনুসন্ধান একই ফাংশন করতে পারে। এটি .sh এর একটি এক্সটেনশন সহ সমস্ত ফাইল আনবে।

$অনুসন্ধান. - নাম*

আমরা for a loop এ কিওয়ার্ড ফাইন্ড ব্যবহার করব।

$জন্য ফাইল ভিতরে *;করঅনুসন্ধান. ফাইল।*;সম্পন্ন

এটি সমস্ত ফাইল বর্তমান ডিরেক্টরিতে নিয়ে আসবে। এগুলোর .bak, .jpeg, .txt এর এক্সটেনশন আছে। ইত্যাদি

এখন, যদি আপনি সমস্ত ডিরেক্টরি ফাইলের নাম এবং তাদের ভিতরের ডেটা দেখতে চান, এটিও 'ফর' লুপ দ্বারা করা হয়।

$জন্য ফাইল ভিতরে *;কর ফাইল $ ফাইল;সম্পন্ন

উপসংহার

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