উত্তর:
xargs
অন্য কোনও কমান্ড উত্পাদিত এমন ফর্ম্যাটে ইনপুট প্রত্যাশা করে, তাই কার্যকরভাবে এটি ব্যবহার করা শক্ত। এখানে যেটি ভুল হচ্ছে তা হ'ল আপনার কাছে এমন একটি ফাইল রয়েছে যার নাম অবশ্যই ইনপুটটিতে উদ্ধৃত করা উচিত xargs
(সম্ভবত একটি রয়েছে '
)।
যদি আপনার গ্রেপ পুনরাবৃত্ত অনুসন্ধানের জন্য -r
বা -R
বিকল্পটিকে সমর্থন করে তবে এটি ব্যবহার করুন।
grep -r word .
অন্যথায়, -exec
প্রাথমিক ব্যবহার করুন find
। এটি xargs
ফাইলের নামগুলিতে সীমাবদ্ধতা ব্যতীত একই প্রভাব অর্জনের স্বাভাবিক উপায় । যুক্তিসঙ্গতভাবে সাম্প্রতিক সংস্করণগুলি find
আপনাকে সহায়িকার কমান্ডের একক কলে বেশ কয়েকটি ফাইলকে গ্রুপ করতে দেয়। এটি প্রতিটি ম্যাচের সামনে ফাইলের নামটি প্রদর্শন করবে তা নিশ্চিত /dev/null
করার জন্য পাস করা grep
, এমনকি এটি কোনও একক ফাইলে ডেকে আনা হলেও।
find . -type f -exec grep word /dev/null {} +
find
(পুরানো সিস্টেমগুলিতে বা ওপেনবিএসডি, বা বুসিবক্সের মতো হ্রাসকৃত ইউটিলিটিস) এর পুরানো সংস্করণগুলি একবারে কেবল একটি ফাইলে সহায়িকার কমান্ড কল করতে পারে।
find . -type f -exec grep word /dev/null {} \;
এর কিছু সংস্করণ find
এবং এর xargs
এক্সটেনশন রয়েছে যা ফাইল নাম পৃথক করতে নাল অক্ষর ব্যবহার করে যাতে সঠিকভাবে যোগাযোগ করতে দেয় যাতে কোনও উদ্ধৃতি প্রয়োজন হয় না। এই দিনগুলিতে কেবল ওপেনবিএসডি-তে এই বৈশিষ্ট্য রয়েছে -exec … {} +
।
find . -type f -print0 | xargs -0 grep word /dev/null
আমার ধারণা আপনি প্রথম বিকল্পটি বোঝাচ্ছেন
ফাইলগুলির মধ্যে সামগ্রী অনুসন্ধানের জন্য গ্রেপ পুনরাবৃত্ত ive
grep -R "content_to_search" /path/to/directory
মিলে যাওয়া ফাইলগুলি অনুসন্ধান করার জন্য, পুনরাবৃত্ত হবে l
ls -lR | grep "your_search"
আপনার যদি জিএনইউ সরঞ্জাম থাকে (লিনাক্স ট্যাগটি সঠিক হয় তবে আপনি যা করেন) তবে আপনি ব্যবহার করতে পারেন -print0
এবং -0
সাধারণ উদ্ধৃতি সমস্যাগুলি পেতে পারেন :
find . -type f -print0 | xargs -0 grep word
বর্তমান ডিরেক্টরিতে আপনি গ্রেপ ব্যবহার করতে পারেন:
grep -irl root .
আমি মনে করি আপনি ফাইলগুলিতে একটি স্ট্রিং সন্ধান করতে চান
চেষ্টা find . -name "*" | xargs grep -l "string"
/dev/null
। কতগুলি ফাইলের মিল রয়েছে তার উপর নির্ভর করে আউটপুট ফর্ম্যাটটি পরিবর্তিত হতে পারে এটি একটি উপদ্রব ... ধন্যবাদ