ব্যাশে ইনডেক্স অ্যারে কীভাবে ব্যবহার করবেন

Byase Inadeksa A Yare Kibhabe Byabahara Karabena



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

ইনডেক্স অ্যারে কি?

ইন্ডেক্সড অ্যারে হল ব্যাশের উপাদানগুলির একটি সংগ্রহ যা একটি সূচক বা কী ব্যবহার করে অ্যাক্সেস করা যেতে পারে। এই অ্যারেগুলিকে একটি নির্দিষ্ট ক্রমে ডেটা সঞ্চয় এবং পুনরুদ্ধার করতে ব্যবহার করা যেতে পারে, যাতে প্রচুর পরিমাণে ডেটা পরিচালনা করা সহজ হয়। ব্যাশে একটি সূচীযুক্ত অ্যারে ঘোষণা করার জন্য সিনট্যাক্স নিম্নরূপ:

< array_name > = ( উপাদান1 উপাদান2 উপাদান3 ... )

এখানে, array_name হল অ্যারের নাম, এবং element1, element2, element3 ইত্যাদি মানগুলি অ্যারেতে সংরক্ষণ করতে হবে। মানগুলি হোয়াইটস্পেস দ্বারা পৃথক করা হয়েছে এবং মনে রাখবেন যে আপনি একটি অ্যারে তৈরি করতে ঘোষণা কমান্ডটিও ব্যবহার করতে পারেন।







ব্যাশে ইনডেক্সড অ্যারে কীভাবে ব্যবহার করবেন

ব্যাশে একটি সূচক অ্যারে তৈরি করতে, আপনাকে কেবল একটি ভেরিয়েবল ঘোষণা করতে হবে এবং বন্ধনীতে আবদ্ধ এবং স্পেস দ্বারা পৃথক করা মান নির্ধারণ করতে হবে। এখানে কয়েকটি উদাহরণ রয়েছে যা প্রদর্শন করে কিভাবে ব্যাশে সূচীকৃত অ্যারে ব্যবহার করতে হয়:



Bash-এ একটি তালিকা পুনরায় সাজানো

আপনার যদি একটি নির্দিষ্ট ক্রমে আইটেমগুলির একটি তালিকা থাকে এবং আপনি সেগুলিকে অন্যভাবে পুনরায় সাজাতে চান। আইটেমগুলির জন্য একটি নতুন অর্ডার তৈরি করতে আপনি একটি সূচক অ্যারে ব্যবহার করতে পারেন, নিম্নরূপ:



#!/bin/bash
আইটেম = ( 'আম' 'আনারস' 'স্ট্রবেরি' 'চেরি' 'আঙ্গুর' )
আদেশ = ( 4 2 0 3 1 )
জন্য i ভিতরে ' ${order[@]} '
করতে
প্রতিধ্বনি ${আইটেম[$i]}
সম্পন্ন

এই উদাহরণে, আমরা পাঁচটি উপাদান সহ আইটেম নামে একটি অ্যারে তৈরি করি। আমরা অর্ডার নামে একটি সূচক অ্যারে তৈরি করি, যা আইটেমগুলির জন্য একটি নতুন অর্ডার নির্দিষ্ট করে। তারপরে আমরা অর্ডার অ্যারের মাধ্যমে লুপ করি এবং আইটেম অ্যারে থেকে সংশ্লিষ্ট আইটেমটি পুনরুদ্ধার করতে এবং প্রিন্ট আউট করতে প্রতিটি মানকে একটি সূচক হিসাবে ব্যবহার করি।





ব্যাশে একটি তালিকা ফিল্টার করা হচ্ছে

আপনার যদি আইটেমগুলির একটি তালিকা থাকে এবং আপনি শর্তের উপর ভিত্তি করে নির্দিষ্ট আইটেমগুলি ফিল্টার করতে চান। শর্ত পূরণ করে এমন আইটেমগুলির সূচকগুলির ট্র্যাক রাখতে আপনি একটি সূচক অ্যারে ব্যবহার করতে পারেন, নিম্নরূপ:



#!/bin/bash
আইটেম = ( 'আম' 'আনারস' 'স্ট্রবেরি' 'চেরি' 'আঙ্গুর' )
সূচক = ( )

জন্য i ভিতরে ' ${!আইটেম[@]} '
করতে
যদি [ [ ${আইটেম[$i]} == * 'আর' * ] ]
তারপর
সূচক+= ( $i )
থাকা
সম্পন্ন

জন্য i ভিতরে ' ${সূচক[@]} '
করতে
প্রতিধ্বনি ${আইটেম[$i]}
সম্পন্ন

এই উদাহরণে, আমরা পাঁচটি উপাদান সহ আইটেম নামে একটি অ্যারে তৈরি করি। আমরা সূচক নামে একটি খালি সূচক অ্যারে তৈরি করি। তারপরে আমরা আইটেম অ্যারে লুপ করি এবং প্রতিটি আইটেমে 'r' অক্ষর রয়েছে কিনা তা পরীক্ষা করি। যদি এটি করে, আমরা সূচক অ্যারেতে এর সূচী যোগ করি। অবশেষে, আমরা সূচক অ্যারের মাধ্যমে লুপ করি এবং আইটেম অ্যারে থেকে সংশ্লিষ্ট আইটেমটি পুনরুদ্ধার করতে এবং প্রিন্ট আউট করতে প্রতিটি মানকে একটি সূচক হিসাবে ব্যবহার করি।

বাশে ঘটনা গণনা

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

#!/bin/bash
আইটেম = ( 'আম' 'আনারস' 'স্ট্রবেরি' 'চেরি' 'আঙ্গুর' )
গণনা = ( )

জন্য i ভিতরে ' ${!আইটেম[@]} '
করতে
যদি [ [ ! ' ${গণনা[@]} ' =~ ' ${আইটেম[$i]} ' ] ]
তারপর
গণনা += ( ' ${আইটেম[$i]} 1' )
অন্য
সূচক =$ ( প্রতিধ্বনি ' ${গণনা[@]} ' | tr ' '\n' | গ্রিপ -n '^ ${আইটেম[$i]} ' | সঙ্গে )
গণনা =$ ( প্রতিধ্বনি ' ${গণনা[$index-1]} ' | কাটা -d ' -f2 )
গণনা [ $ সূচক - 1 ] = ' ${আইটেম[$i]} $((গণনা+1) )'
থাকা
সম্পন্ন

জন্য গণনা ভিতরে ' ${গণনা[@]} '
করতে
প্রতিধ্বনি $গণনা
সম্পন্ন

এটি প্রথমে স্ট্রিংগুলির একটি তালিকা সহ 'আইটেম' নামে একটি অ্যারে শুরু করে। তারপর এটি 'গণনা' নামে একটি খালি অ্যারে ঘোষণা করে। 'আইটেম' অ্যারের প্রতিটি আইটেমের জন্য পুনরাবৃত্তি করার জন্য একটি লুপ তৈরি করা হয় এবং প্রতিটি আইটেমের জন্য এটি 'গণনা' অ্যারেতে ইতিমধ্যে বিদ্যমান কিনা তা পরীক্ষা করে।

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

ব্যাশে একটি তালিকা আপডেট করা হচ্ছে

আপনার যদি আইটেমগুলির একটি তালিকা থাকে এবং আপনি এটি থেকে আইটেমগুলি যোগ করতে বা মুছতে চান তবে আপনি এটির জন্য একটি সূচক অ্যারে ব্যবহার করতে পারেন এবং এখানে প্রদর্শনের জন্য একটি উদাহরণ রয়েছে:

#!/bin/bash
আইটেম = ( 'আম' 'আনারস' 'স্ট্রবেরি' 'চেরি' 'আঙ্গুর' )

# ইনডেক্স 2 এ ইন্ডেক্স করা অ্যারেতে একটি নতুন উপাদান যোগ করা হচ্ছে
আইটেম [ 6 ] = 'কমলা'
# সূচীকৃত অ্যারে থেকে সূচক 2 এ উপাদানটি মুছে ফেলা হচ্ছে
আনসেট আইটেম [ 2 ]

# আপডেট করা অ্যারে প্রিন্ট করা হচ্ছে
প্রতিধ্বনি ' ${আইটেম[@]} '

স্ক্রিপ্টে একটি সূচীকৃত অ্যারে 'আইটেম' পাঁচটি প্রাথমিক উপাদান দিয়ে সংজ্ঞায়িত করা হয়েছে। একটি নতুন উপাদান যোগ করার জন্য, মানটি কেবল সিনট্যাক্স অ্যারে[ইনডেক্স]=মান ব্যবহার করে পছন্দসই সূচকে বরাদ্দ করা হয়। এই স্ক্রিপ্টে, অ্যারের সূচক 6-এ 'কমলা' যোগ করা হয়েছে। একটি উপাদান মুছে ফেলার জন্য, আমরা অপসারণ করতে চাই উপাদানটির সূচী অনুসরণ করে আনসেট কমান্ড ব্যবহার করি। এই ক্ষেত্রে, সূচক 2 এর উপাদান ('স্ট্রবেরি') মুছে ফেলা হয়। আপডেট করা অ্যারে তারপর সিনট্যাক্স ব্যবহার করে প্রিন্ট করা হয় “${array[@]}”, যা পুরো অ্যারেকে প্রসারিত করে।

উপসংহার

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