রেগুলার এক্সপ্রেশন ব্যবহার করা

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 প্রোগ্রামাররা জটিল টেক্সট ম্যানিপুলেশন টাস্কের জন্য নিয়মিত এক্সপ্রেশনের পূর্ণ শক্তিকে হার্নেস করতে পারে, শেলের স্বাভাবিক কার্যক্ষমতা বাড়াতে।