linux - লিনাক্সে শুধু ফাইলের নাম দেখানোর জন্য আমি কিভাবে grep ব্যবহার করতে পারি?




(2)

লিনাক্সে ফাইল নামগুলি (কোন ইন-লাইন মিল নেই) দেখানোর জন্য আমি কিভাবে grep ব্যবহার করতে পারি?

আমি সাধারণত কিছু ভালো ব্যবহার করছি:

find . -iname "*php" -exec grep -H myString {} \;

কিভাবে আমি ফাইল নামগুলি (পাথ দিয়ে) পেতে পারি, কিন্তু ম্যাচ ছাড়া? আমি xargs ব্যবহার করতে হবে? আমি আমার grep মানুষের পৃষ্ঠায় এটি করার একটি উপায় দেখতে না।


সহজ ফাইল অনুসন্ধানের জন্য আপনি grep এর -l এবং -r বিকল্পগুলি ব্যবহার করতে পারেন:

grep -rl "mystring"

সব অনুসন্ধান grep দ্বারা সম্পন্ন করা হয়। অবশ্যই, যদি আপনি অন্য কোন প্যারামিটারে ফাইলগুলি নির্বাচন করতে চান তবে সঠিক সমাধানটি খুঁজে বের করুন:

find . -iname "*.php" -execdir grep -l "mystring" {} +

execdir বিকল্প প্রতিটি ডিরেক্টরি প্রতি প্রতিটি grep কমান্ড তৈরি করে এবং শুধুমাত্র একটি কমান্ড ( + ) এ ফাইলের নাম সংযোজন করে।


স্ট্যান্ডার্ড বিকল্প grep -l (যে একটি ছোট হাতের এল) এই কাজ করতে পারে।

ইউনিক্স স্ট্যান্ডার্ড থেকে :

-l
    (The letter ell.) Write only the names of files containing selected
    lines to standard output. Pathnames are written once per file searched.
    If the standard input is searched, a pathname of (standard input) will
    be written, in the POSIX locale. In other locales, standard input may be
    replaced by something more appropriate in those locales.

আপনি এই ক্ষেত্রে প্রয়োজন- -H প্রয়োজন নেই।





grep