আপনার যদি জিএনইউ গ্রেপ থাকে তবে আপনি -o
একটি রেইগেক্স অনুসন্ধান করতে তার বিকল্পটি ব্যবহার করতে পারেন এবং কেবলমাত্র মিলে যাওয়া অংশটি আউটপুট করতে পারেন । (অন্যান্য গ্রেপ বাস্তবায়ন কেবল পুরো লাইনটিই প্রদর্শন করতে পারে)) যদি এক লাইনে বেশ কয়েকটি মিল থাকে তবে সেগুলি পৃথক লাইনে মুদ্রিত হয়।
grep -o '\[[0-9]*\]'
আপনি যদি কেবল ডিজিটগুলি চান এবং বন্ধনীগুলি না, এটি কিছুটা শক্ত; আপনার শূন্য-প্রস্থের প্রতিলিপিটি ব্যবহার করতে হবে: একটি রেজিএক্সপ্যাক খালি স্ট্রিংয়ের সাথে মেলে তবে কেবল এটির আগে, বা বন্ধনী দ্বারা ক্ষেত্রে হিসাবে অনুসরণ করা যেতে পারে। জিরো-প্রস্থের প্রতিলিপিগুলি কেবল পার্ল সিনট্যাক্সে উপলব্ধ।
grep -P -o '(?<=\[)[0-9]*(?=\])'
সেড সহ, আপনার সাথে মুদ্রণ বন্ধ করতে হবে -n
, এবং পুরো লাইনটি মেলাতে হবে এবং কেবল মিলে যাওয়া অংশটি ধরে রাখতে হবে। যদি এক লাইনে বেশ কয়েকটি সম্ভাব্য ম্যাচ থাকে তবে কেবল শেষ ম্যাচটি মুদ্রিত হবে। এখানে সেড ব্যবহার সম্পর্কে আরও তথ্যের জন্য আশেপাশের অক্ষরগুলি না ছাপিয়ে 'সেড' এর সাথে মিলে যাওয়া একটি রেজেক্স বের করা দেখুন ।
sed -n 's/^.*\(\[[0-9]*\]\).*/\1/p'
বা যদি আপনি কেবল ডিজিটগুলি চান না বন্ধনীগুলি:
sed -n 's/^.*\[\([0-9]*\)\].*/\1/p'
ছাড়া grep -o
, পার্ল এখানে পছন্দের হাতিয়ার যদি আপনি এমন কিছু চান যা সাধারণ এবং বোধগম্য। প্রতিটি লাইনে ( -n
), লাইনটিতে যদি কোনও মিল থাকে \[[0-9]*\]
তবে সেই ম্যাচটি ( $&
) এবং একটি নতুন লাইন ( -l
) মুদ্রণ করুন ।
perl -l -ne '/\[[0-9]*\]/ and print $&'
আপনি যদি কেবল ডিজিটগুলি চান তবে একটি দলকে সীমানা নির্ধারণ করতে রেগেক্সে প্রথম বন্ধনী লিখুন এবং কেবলমাত্র সেই গোষ্ঠীটি মুদ্রণ করুন।
perl -l -ne '/\[([0-9]*)\]/ and print $1'
পিএস যদি আপনি কেবল বন্ধনীগুলির মধ্যে এক বা একাধিক সংখ্যার প্রয়োজন হয়, পরিবর্তন [0-9]*
করতে পারেন [0-9][0-9]*
বা [0-9]+
পার্লে।
[number]
" অর্থ ব্যতীত[0-9]