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
ব্যবহার করুন যখন রাখার জন্য একটি প্যাটার্ন খুঁজছেন, যা বাদ দেওয়ার বিপরীত।
আরও দেখুন
- অফিশিয়াল Fish Shell ডকুমেন্টেশন
string
নিয়ে: https://fishshell.com/docs/current/cmds/string.html - প্যাটার্নগুলিতে গভীর ডাইভের জন্য Regex টিউটোরিয়াল: https://www.regular-expressions.info/
- Sed & Awk, প্রাচীন টেক্সট পাওয়ারগুলি: একটি পরিচিতি: https://www.gnu.org/software/sed/manual/sed.html, http://www.grymoire.com/Unix/Awk.html