awk -F '|' '$1 ~ /smiths/ {sum += $3} END {print sum}' inputfilename
-F
পতাকা ক্ষেত্র বিভাজক সেট করে; আমি এটি একক উদ্ধৃতিতে রেখেছি কারণ এটি একটি বিশেষ শেল অক্ষর।
- তারপরে
$1 ~ /smiths/
নিম্নলিখিত {কোড ব্লক} কেবলমাত্র সেই লাইনে প্রয়োগ করুন যেখানে প্রথম ক্ষেত্রটি রেজেক্সের সাথে মেলে /smiths/
।
- বাকিটি আপনার কোডের মতো।
মনে রাখবেন যে আপনি যেহেতু এখানে সত্যিকার অর্থে একটি রেগেক্স ব্যবহার করছেন না, তাই আপনি কেবল সহজেই ব্যবহার করতে পারেন:
awk -F '|' '$1 == "smiths" {sum += $3} END {print sum}' inputfilename
যা স্ট্রিং সমতা পরীক্ষা করে। এটি /^smiths$/
অন্য জবাব হিসাবে উল্লিখিত হিসাবে রেজেক্স ব্যবহারের সমতুল্য , যার মধ্যে ^
অ্যাঙ্কর কেবল স্ট্রিংয়ের শুরু (ফিল্ড 1 এর সূচনা) এবং $
কেবলমাত্র স্ট্রিংয়ের শেষের সাথে মিলে যাওয়ার জন্য অ্যাঙ্কর অন্তর্ভুক্ত করে। আপনি রেজিক্সগুলির সাথে কতটা পরিচিত তা নিশ্চিত নন। এগুলি খুব শক্তিশালী, তবে এই ক্ষেত্রে আপনি স্ট্রিং সমতা পরীক্ষা করতে পারেন ঠিক তত সহজে।