পথ / ফাইল: লাইন না দেখিয়ে গ্রেপ


234

আপনি কীভাবে গ্রেপ করবেন এবং কেবল মিলের লাইনটি ফিরিয়ে দেবেন? অর্থাত্ পথ / ফাইলের নাম ফলাফল থেকে বাদ দেওয়া হয়েছে।

এই ক্ষেত্রে আমি বর্তমান ডিরেক্টরিতে সমস্ত .bar ফাইলগুলিতে সন্ধান করতে চাই, এফইও শব্দটি অনুসন্ধান করব

find . -name '*.bar' -exec grep -Hn FOO {} \;

উত্তর:


375

দরকার নেই find। আপনি যদি কোনও নির্দিষ্ট ডিরেক্টরিতে কেবল কোনও প্যাটার্ন খুঁজছেন তবে এটি যথেষ্ট হবে:

grep -hn FOO /your/path/*.bar

-hফাইলের নামটি গোপন করার জন্য প্যারামিটারটি কোথায় থেকে man grep:

-h, - কোন-ফাইল নাম

আউটপুট ফাইলের নামের উপসর্গ দমন। অনুসন্ধানের জন্য কেবলমাত্র একটি ফাইল (বা কেবলমাত্র স্ট্যান্ডার্ড ইনপুট) এলে এটি ডিফল্ট।

নোট করুন যে আপনি ব্যবহার করছিলেন

-এইচ, - ফাইল-নাম সহ

প্রতিটি ম্যাচের জন্য ফাইলের নাম মুদ্রণ করুন। অনুসন্ধানের জন্য একাধিক ফাইল উপস্থিত থাকলে এটি ডিফল্ট।


লাইন নম্বর বাদ দেওয়া যাবে?
জাভাদবা

@javadba আপনি সম্ভবত উপনাম, টাইপ ব্যবহার করছেন alias grep। উপনামটি বাদ দিতে, টাইপ করুন\grep ...
ফেডোরকিউ 'এসও ক্ষতিগ্রস্থ হওয়া বন্ধ করুন'

1
হ্যাঁ এটি উপনামটি ব্যবহার করছিল।
জাভাদবা

8

শুধু প্রতিস্থাপন -Hসঙ্গে -hman grepঅপশন সম্পর্কে আরও বিশদ জন্য পরীক্ষা করুন

find . -name '*.bar' -exec grep -hn FOO {} \;

6

ম্যান পৃষ্ঠা থেকে:

-h, --no-filename
    Suppress the prefixing of file names on output. This is the default when there
    is only one file (or only standard input) to search.
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.