আমার শেল ফাংশনগুলির একটিতে নিম্নলিখিতটি থাকা:
function _process () {
awk -v l="$line" '
BEGIN {p=0}
/'"$1"'/ {p=1}
END{ if(p) print l >> "outfile.txt" }
'
}
, সুতরাং যখন হিসাবে ডাকা হয় _process $arg
, হিসাবে $arg
পাস করা হয় $1
এবং অনুসন্ধান নিদর্শন হিসাবে ব্যবহৃত হয়। এটি এইভাবে কাজ করে, কারণ শেলটি $1
অজগর প্যাটার্নের জায়গায় প্রসারিত হয়! এছাড়াও l
ঘোষিত হওয়ার সাথে সাথে awk প্রোগ্রামের অভ্যন্তরেও ব্যবহার করা যেতে পারে -v l="$line"
। সব ঠিক.
পরিবর্তনশীল হিসাবে অনুসন্ধানের জন্য কী একই পদ্ধতিতে প্যাটার্ন দেওয়া সম্ভব?
নিম্নলিখিতগুলি কাজ করবে না,
awk -v l="$line" -v search="$pattern" '
BEGIN {p=0}
/search/ {p=1}
END{ if(p) print l >> "outfile.txt" }
'
, খালি /search/
হিসাবে পরিবর্তনশীল হিসাবে ব্যাখ্যা করবে না , পরিবর্তে আক্ষরিক।