যেহেতু আপনাকে ফলাফলটি অন্তর্ভুক্ত না করে আপনার সামগ্রীটি মেলে ফেলতে হবে (অবশ্যই মিলবে name="
তবে এটি পছন্দসই ফলাফলের অংশ নয়) শূন্য-প্রস্থের ম্যাচিং বা গ্রুপ ক্যাপচারের কোনও ফর্মের প্রয়োজন। এটি নিম্নলিখিত সরঞ্জামগুলির সাহায্যে সহজেই করা যায়:
পার্ল
পার্লের সাহায্যে আপনি n
লাইন দ্বারা লুপ লুপ করতে বিকল্পটি ব্যবহার করতে এবং ক্যাপচারিং গোষ্ঠীর সাথে মেলে যদি মুদ্রণ করতে পারেন:
perl -ne 'print "$1\n" if /name="(.*?)"/' filename
জিএনইউ গ্রেপ
আপনার যদি গ্রেএন এর উন্নত সংস্করণ যেমন জিএনইউ গ্রেপ থাকে তবে আপনার কাছে -P
বিকল্পটি উপলভ্য হতে পারে । এই বিকল্পটি পার্লের মতো \K
রেজেজকে সক্ষম করবে, যা আপনাকে শর্টহ্যান্ড লুকের পিছনে ব্যবহার করার অনুমতি দেয় । এটি ম্যাচের অবস্থানটি পুনরায় সেট করবে, তাই এটি শূন্য-প্রস্থের আগে যে কোনও কিছুই।
grep -Po 'name="\K.*?(?=")' filename
o
বিকল্প তোলে grep পুরো লাইনের পরিবর্তে শুধুমাত্র মিলেছে টেক্সট প্রিন্ট।
ভিম - পাঠ্য সম্পাদক
অন্য উপায় হ'ল সরাসরি একটি পাঠ্য সম্পাদক ব্যবহার করা। ভিমের সাথে, এটি সম্পাদনের বিভিন্ন উপায়গুলির মধ্যে একটি হ'ল লাইনগুলি ছাড়াই মুছে ফেলা
name=
এবং তারপরে ফলাফলগুলি লাইনগুলি থেকে সামগ্রীটি বের করা:
:v/.*name="\v([^"]+).*/d|%s//\1
স্ট্যান্ডার্ড গ্রেপ
যদি আপনার এই সরঞ্জামগুলিতে অ্যাক্সেস না থাকে তবে কোনও কারণে, স্ট্যান্ডার্ড গ্রেপ দিয়ে অনুরূপ কিছু অর্জন করা যেতে পারে। তবে আশেপাশে নজর না দিয়ে এর জন্য পরে কিছুটা পরিষ্কারের প্রয়োজন হবে:
grep -o 'name="[^"]*"' filename
ফলাফল সংরক্ষণের বিষয়ে একটি নোট
উপরের সমস্ত কমান্ডে ফলাফল পাঠানো হবে stdout
। এটি মনে রাখা গুরুত্বপূর্ণ যে আপনি সবসময় এগুলি যুক্ত করে কোনও ফাইলে পাইপ দিয়ে এগুলি সংরক্ষণ করতে পারেন:
> result
কমান্ডের শেষে।