লিনাক্সের ডিরেক্টরি সামগ্রীর সামগ্রীতে কীভাবে কোনও শব্দ অনুসন্ধান করতে হয়


15

সম্পূর্ণ সামগ্রীতে কিছু অনুসন্ধান করা প্রয়োজন

আমি চেষ্টা করছি:

find . | xargs grep word

আমি ত্রুটি পেয়েছি:

xargs: নিরবচ্ছিন্ন উদ্ধৃতি

কীভাবে এটি অর্জন করবেন?

উত্তর:


15

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

+1 টি বিশেষ করে /dev/null। কতগুলি ফাইলের মিল রয়েছে তার উপর নির্ভর করে আউটপুট ফর্ম্যাটটি পরিবর্তিত হতে পারে এটি একটি উপদ্রব ... ধন্যবাদ
পিটার.ও

12

আমার ধারণা আপনি প্রথম বিকল্পটি বোঝাচ্ছেন

ফাইলগুলির মধ্যে সামগ্রী অনুসন্ধানের জন্য গ্রেপ পুনরাবৃত্ত ive

grep -R "content_to_search" /path/to/directory

মিলে যাওয়া ফাইলগুলি অনুসন্ধান করার জন্য, পুনরাবৃত্ত হবে l

ls -lR | grep "your_search"

পুনরাবৃত্ত-কেস_ সংবেদনশীল-শো_লাইন_নামার জন্য গ্রেপ-রিন

আমি প্রতিটি ফাইলের সামগ্রীতে অনুসন্ধান করতে সক্ষম হতে চাই।

প্রথমটি কোনও ফাইলে যে কোনও অক্রেনসন ফিরিয়ে দেয়, সেই ফাইলটি নির্দিষ্ট করে যেখানে অস্থলতাটি পাওয়া গেছে

2

আপনার যদি জিএনইউ সরঞ্জাম থাকে (লিনাক্স ট্যাগটি সঠিক হয় তবে আপনি যা করেন) তবে আপনি ব্যবহার করতে পারেন -print0এবং -0সাধারণ উদ্ধৃতি সমস্যাগুলি পেতে পারেন :

find . -type f -print0 | xargs -0 grep word

0

এছাড়া ACK , এটা মত বিশেষ ডিরেক্টরি এড়িয়ে যেতে ডিজাইন .svn, .gitএবং এই ধরনের। এটি বিকাশকারীদের জন্য একটি দৈনিক সরঞ্জাম।

সাধারণ সুইচগুলির জন্য এটি খুব কাছাকাছি ।

যাত্রা। :

ack -r string .

ack-grepডেবিয়ান এবং ডিবিয়ান পছন্দগুলিতে প্যাকেজ ।



-1

আমি মনে করি আপনি ফাইলগুলিতে একটি স্ট্রিং সন্ধান করতে চান

চেষ্টা find . -name "*" | xargs grep -l "string"


Xargs এর ত্রুটি বার্তা ("শর্তহীন উদ্ধৃতি") এর অর্থ ওপিতে একটি ফাইল রয়েছে। যার নামে একটি উক্তি রয়েছে। আপনার লাইন এটি পাশাপাশি কুটিল হবে। মিউ যেমন উল্লেখ করেছেন, আপনার একটি আলাদা সমাপ্তি প্রয়োজন।
থাইটন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.