Fish Shell:
রেগুলার এক্সপ্রেশন ব্যবহার করা
কিভাবে:
Fish Shell নিজে একটি বিল্ট-ইন কমান্ড না থাকলেও রেগুলার এক্সপ্রেশনের জন্য grep
, sed
, এবং awk
এর মতো বাহ্যিক কমান্ডের সফল ব্যবহার করে, যেগুলি regex সমর্থন করে, এতে করে আপনি আপনার স্ক্রিপ্টগুলিতে regex অপারেশন অন্তর্ভুক্ত করতে পারেন।
grep
সহ মৌলিক প্যাটার্ন মিলান
একটি ফাইলে এমন লাইনগুলি অনুসন্ধান করুন যা একটি প্যাটার্নের সাথে মিলে যায়:
grep '^[0-9]+' myfile.txt
এই কমান্ডটি myfile.txt
-এ এক বা একাধিক সংখ্যার সাথে শুরু হওয়া লাইনগুলি খুঁজে পায়।
sed
এর মাধ্যমে এক্সট্র্যাক্ট করা এবং প্রতিস্থাপন করা
একটি ফাইল থেকে ফোন নম্বর এক্সট্র্যাক্ট করুন:
sed -n '/\([0-9]\{3\}\)-\([0-9]\{3\}\)-\([0-9]\{4\}\)/p' contacts.txt
data.txt
-এ “foo” এর সব ঘটনাকে “bar” দিয়ে প্রতিস্থাপন করা:
sed 's/foo/bar/g' data.txt
বেসিক Regex ব্যবহার করে string
Fish Shell-এর string
কমান্ড ম্যাচ এবং প্রতিস্থাপনের মতো সাধারণ regex অপারেশন সমর্থন করে:
একটি স্ট্রিং-এ একটি প্যাটার্ন মিলান:
echo "fish 3.1.2" | string match -r '3\.[0-9]+\.[0-9]+'
আউটপুট:
3.1.2
‘fish’-এর পরের সংখ্যাগুলিকে ‘X.X.X’ দিয়ে প্রতিস্থাপন করা:
echo "Welcome to fish 3.1.2" | string replace -ra '([fish]+\s)[0-9\.]+' '$1X.X.X'
আউটপুট:
Welcome to fish X.X.X
awk
এর সাথে উন্নত মিলান
যেখানে প্রথম কলাম একটি নির্দিষ্ট প্যাটার্নের সাথে মিলে সেখানে দ্বিতীয় কলামের ডেটা প্রিন্ট করুন:
awk '$1 ~ /^a[0-9]+$/ {print $2}' datafile
এই কমান্ডটি datafile
-এ এমন লাইনগুলি অনুসন্ধান করে যেখানে প্রথম কলাম “a” দিয়ে শুরু হয় এবং এক বা একাধিক সংখ্যা অনুসরণ করে এবং দ্বিতীয় কলাম প্রিন্ট করে।
এই বাহ্যিক কমান্ডগুলি একীভূত করে, Fish Shell প্রোগ্রামাররা জটিল টেক্সট ম্যানিপুলেশন টাস্কের জন্য নিয়মিত এক্সপ্রেশনের পূর্ণ শক্তিকে হার্নেস করতে পারে, শেলের স্বাভাবিক কার্যক্ষমতা বাড়াতে।