গ্রেপ প্যাটার্ন উপেক্ষা


12

আমি নীচে সিআরএল ব্যবহার করে কোনও ওয়েবসাইট থেকে ইউআরএলগুলি বের করছি।

curl www.somesite.com | grep "<a href=.*title=" > new.txt

আমার new.txt ফাইলটি নীচের মতো।

<a href="http://website1.com" title="something">
<a href="http://website1.com" information="something" title="something">
<a href="http://website2.com" title="some_other_thing">
<a href="http://website2.com" information="something" title="something">
<a href="http://websitenotneeded.com" title="something NOTNEEDED">

তবে, আমাকে কেবল নীচের তথ্যগুলি বের করতে হবে।

<a href="http://website1.com" title="something">
<a href="http://website2.com" information="something" title="something">

আমি উপেক্ষা করতে চেষ্টা করছি <a hrefযা আছে তথ্য তাদের মধ্যে যার সঙ্গে উপাধি শেষ NOTNEEDED ।

আমি কীভাবে আমার গ্রেপ স্টেটমেন্টটি সংশোধন করতে পারি?


আপনি যে আউটপুটটি এখানে প্রদর্শন করছেন তা কি সঠিক? এটি বর্ণনা করা পাঠ্যটি এই উদাহরণের সাথে অর্থবোধ করে না।
— slm

1
আপনি খুঁজছেন না curl www.somesite.com | grep "<a href=.*title=" | grep -v NOTNEEDED > new.txt?
— টেরডন

@ স্টারডন, ঠিক আমি যা খুঁজছিলাম তাই ছিল আপনি যদি এটি পোস্ট করেন তবে আমি উত্তর হিসাবে এটি গ্রহণ করতে পারি।
— রমেশ

রমেশ, এটি মূলত @ স্ল্যামের উত্তর। আমি এটি সম্পাদনা করেছি যাতে আপনি এটি গ্রহণ করতে পারেন।
— টেরডন

হ্যাঁ, আমি বুঝতে পারি না পাইপটি এই শক্তিশালী ছিল। আমি উত্তর হিসাবে এটি গ্রহণ করেছি। ধন্যবাদ!
— রমেশ

উত্তর:


17

আমি আপনার উদাহরণটি + বর্ণনাকে পুরোপুরি অনুসরণ করছি না তবে এটি যা মনে হচ্ছে তা হ'ল:

$ grep -v "<a href=.*title=.*NOTNEEDED" sample.txt 
<a href="http://website1.com" title="something">
<a href="http://website1.com" information="something" title="something">
<a href="http://website2.com" title="some_other_thing">
<a href="http://website2.com" information="something" title="something">

সুতরাং আপনার উদাহরণের জন্য:

$ curl www.example.com | grep -v "<a href=.*title=" | grep -v NOTNEEDED > new.txt

আমার <href বিভাগে একটি ক্লাস রয়েছে। মূলত, আমি আমার আউটপুটে এটি চাই না।
— রমেশ

9

, Grep মানুষ পৃষ্ঠাটি জানাচ্ছে:

-v, --invert-match
    Invert the sense of matching, to select non-matching lines. (-v is specified by POSIX .) 

আপনি একাধিক বিপরীতের জন্য নিয়মিত এক্সপ্রেশন ব্যবহার করতে পারেন:

grep -v 'red\|green\|blue'

অথবা

grep -v red | grep -v green | grep -v blue
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.