একটি নমুনা মেলে অক্ষরগুলি মুছে ফেলা

Fish Shell:
একটি নমুনা মেলে অক্ষরগুলি মুছে ফেলা

কীভাবে:

# স্ট্রিং থেকে সংখ্যা মুছে ফেলা
set string "Fish123Shell"
echo $string | string replace -ra '[0-9]' ''
# আউটপুট: FishShell

# ছোট হাতের অক্ষর ছাড়া সবকিছু বাদ দেওয়া
set noisy_string "F!i@s#h$%S^h&e*l(l)__+"
echo $noisy_string | string match -r '[a-z]+'
# আউটপুট: ishhell

গভীর ডাইভ

Fish Shell-এ, জাদু ঘটে string ইউটিলিটির মাধ্যমে, যা একটি দক্ষ অন্তর্নির্মিত স্ট্রিং অপারেশন টূল - যা সংস্করণ 2.3.0-এ প্রবর্তিত। এর আগে, ব্যবহারকারীরা sed বা awk এর মত UNIX অপারেশনগুলোর উপর নির্ভর করত। পরিবর্তনের কারণ কী? সহজতা এবং একীকরণ। অভ্যন্তরীণ সমাধানের মাধ্যমে স্ট্রিং ম্যানিপুলেশন সহজ হয়, যা স্ক্রিপ্টগুলি আরও পাঠনীয় ও রক্ষণাবেক্ষণযোগ্য করে তোলে।

বিকল্প? অবশ্যই, প্রাচীন sed এখনো কাজ করতে পারে:

set old_school_string "Fish@Shell2023"
echo $old_school_string | sed 's/[0-9]//g'
# আউটপুট: Fish@Shell

কিন্তু Fish নিজের টুলগুলো ব্যবহার না করার কি কারণ? বাস্তবায়নে, string replace এর একটি -r অপশন আছে যা রেগেক্স প্যাটার্নগুলি সক্ষম করে। -a কমান্ডটি সব ম্যাচের উপর প্রযোজ্য, এবং শেষে একটি ’’ যোগ করে এটি কিছুর সাথে প্রতিস্থাপনের পরিবর্তে মুছে দেওয়ার জন্য বলে, অর্থাৎ মুছে ফেলে। string match ব্যবহার করুন যখন রাখার জন্য একটি প্যাটার্ন খুঁজছেন, যা বাদ দেওয়ার বিপরীত।

আরও দেখুন