সবচেয়ে সহজ grep
কোড যা কাজ করবে:
grep -xE '([^,]*,){10}[^,]*'
ব্যাখ্যা:
-x
নিশ্চিত করে যে প্যাটার্নটি অবশ্যই কেবল তার কিছু অংশের চেয়ে পুরো লাইনের সাথে মেলে । এটি গুরুত্বপূর্ণ কারণ আপনি 10 টিরও বেশি কমা দিয়ে লাইন মেলে না।
-E
এর অর্থ "বর্ধিত রেজেক্স", যা আপনার রেজেক্সে কম ব্যাকস্ল্যাশ-পলায়নের জন্য তোলে।
প্যারেন্টেসিসগুলি গ্রুপিংয়ের জন্য ব্যবহৃত হয় এবং {10}
তারপরে অর্থ প্যারেন্টেসিসের মধ্যে প্যাটার্নের এক সারিতে ঠিক দশটি ম্যাচ থাকতে হবে।
[^,]
একটি অক্ষর শ্রেণি instance উদাহরণস্বরূপ, [c-f]
যে কোনও একক অক্ষরের সাথে মিলবে যা ক c
, ক d
, ক e
বা একটি f
, এবং [^A-Z]
কোনও একক অক্ষরের সাথে মিলবে যা বড় হাতের অক্ষর নয়। তাই [^,]
কমা ব্যতীত যে কোনও একটি চরিত্রের সাথে মেলে।
*
চরিত্র শ্রেণী মানে পরে "শূন্য বা এই আরও।"
সুতরাং রেজেক্স অংশটির ([^,]*,)
অর্থ "কমা ব্যতীত যে কোনও চরিত্র যেকোন সংখ্যক বার (শূন্যগুণ সহ), তার পরে কমা" এবং এর মধ্যে {10}
10 টি নির্দিষ্ট করে। তারপরে [^,]*
বাকী নন-কমা অক্ষরের সাথে লাইনের শেষের সাথে মেলে।
sed
এখানে যেমন করা হয়) কেবলমাত্র আরও একটি ম্যাচ যতটা অনুসন্ধান করা হয় ততটা প্রয়োজন, যদিও এই প্রশ্নটি করে না। আপনার এটি বন্ধ করা উচিত নয়।