এই নিবন্ধটি আপনাকে দেখাবে কিভাবে Bash/Shell স্ক্রিপ্টে একটি প্রদত্ত ডিলিমিটারে একটি স্ট্রিং বিভক্ত করতে হয় এবং কিছু উদাহরণ দেখায়৷
স্প্লিটিং স্ট্রিং একটি সহজ ফাংশন যা আপনার স্ক্রিপ্ট তৈরি করার সময় উপলব্ধ। CSV (কমা বিভক্ত মান) হল একটি সাধারণ বিন্যাস যেখানে ডেটা অনলাইনে উপলব্ধ করা হয়, যেখানে একটি টেবিলের ডেটা ক্ষেত্রগুলি (আশ্চর্য) কমা দ্বারা পৃথক করা হয়৷
এছাড়াও আপনি কেবল ফাঁকা জায়গায় একটি বাক্যকে শব্দে বিভক্ত করতে বা পিরিয়ডে অনুচ্ছেদগুলিকে বাক্যে বিভক্ত করতে দেখতে পারেন।
অনেক সমাধান স্ট্রিং বিভক্ত করার ব্যাশ-নির্দিষ্ট পদ্ধতিতে ফোকাস করে। নীচে, আমি একটি পদ্ধতির রূপরেখা দেব যা যেকোন লিনাক্স শেল স্ক্রিপ্টে কাজ করা উচিত।
কাট ব্যবহার করা স্ট্রিং বিভক্ত করার কমান্ড
কাট লিনাক্সে কমান্ড একটি টেক্সট ফাইলের লাইন থেকে বিভাগগুলি সরিয়ে দেয় এবং তারপর সেগুলিকে আউটপুট করে।
এই উদাহরণটি একটি প্রদত্ত ডিলিমিটারে পাঠ্যকে বিভক্ত করার জন্য এই কমান্ডটিকে মানিয়ে নেবে।
কাট-এর সম্পূর্ণ ব্যবহারকারীর ম্যানুয়ালের জন্য কমান্ড, এখানে ক্লিক করুন।
কোড
নীচে একটি উদাহরণ ব্যাশ স্ক্রিপ্ট যা স্ট্রিং splitMe নেয়৷ এবং কমা (,) স্ট্রিং স্প্লিটে তাদের অবস্থানের উপর ভিত্তি করে আইটেম ফেরত দেয় ):
#!/bin/bash# একটি কমা-বিভক্ত stringsplitMe সংজ্ঞায়িত করুন='apple,banana,grape,kiwi'# স্প্লিট স্ট্রিংফার্স্টআইটেম="$(echo $splitMe | cut -d',' -এ প্রথম আইটেমটি পান f1)"# বিভক্ত stringthirdItem="$(echo $splitMe | cut -d',' -f3)"# তৃতীয় আইটেমটি পানতাহলে কেন এই কাজ করে? প্রতিধ্বনি মূল স্ট্রিংকে কাট-এ পাইপ করতে কমান্ড ব্যবহার করা হয় আদেশ কাট কমান্ড -d ব্যবহার করে ডিলিমিটার নির্দিষ্ট করার বিকল্প (এই ক্ষেত্রে একটি কমা, তবে যে কোনো অক্ষর বা স্ট্রিং ব্যবহার করা যেতে পারে ), এবং -f কোন ক্ষেত্রটি ফেরত দেওয়া উচিত তা নির্দিষ্ট করার জন্য একটি সংখ্যা দ্বারা অনুসরণ করা বিকল্প - এটি হল আইটেমের অবস্থান যা আপনি বিভক্ত স্ট্রিং থেকে পেতে চান৷
পুনঃব্যবহারযোগ্য ব্যাশ ফাংশন
এটি সবই ভাল এবং ভাল, কিন্তু এটি সত্যিই পুনরায় ব্যবহারযোগ্য নয় - তাই এখানে এটি একটি ফাংশনে রয়েছে:
#!/bin/bash# স্ট্রিংগুলিকে বিভক্ত করার ফাংশন সংজ্ঞায়িত করুন# এটি তিনটি প্যারামিটার গ্রহণ করবে, বিভক্ত করার জন্য স্ট্রিং, বিভাজনকারী, এবং অবশেষে আইটেমটির অবস্থান স্প্লিটমাইস্ট্রিং(){ splitString=$1 delimiter=$2 item=$3 ফলাফল="$(echo $splitString | cut -d',' -f$item)" echo $result}# testingsplitMe='apple,banana,grape,kiwi'# স্প্লিট করার জন্য একটি স্ট্রিং নির্ধারণ করুন কমাতে স্ট্রিং এবং দ্বিতীয় আইটেমচো $(splitMyString $splitMe "," 2) ফেরত দিচ্ছে