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


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.