আমি কীভাবে কোনও ডিরেক্টরিতে পুনরাবৃত্তভাবে নির্দিষ্ট ফাইলগুলি গ্রেপ করতে পারি?


14

আমি লিনাক্স এবং গ্রেপ এ নতুন, এবং আমার চারপাশের পথ সন্ধান করার চেষ্টা করছি।

ব্যবহার করে find -name *.javaআমি একটি নির্দিষ্ট ডিরেক্টরিতে জাভা ফাইলগুলির সমস্ত নাম সন্ধান করতে সক্ষম হয়েছি। ধরুন আমি fooএই ফাইলগুলিতে কতবার সংখ্যার সংখ্যা গণনা করতে চাই , আমি কীভাবে এটি করব?

আমি এ জাতীয় জিনিস চেষ্টা করে যাচ্ছি:

grep -r "foo" *.java

এবং এর মতো প্রতিক্রিয়া পাওয়া:

grep:  *.java:  No such file or directory

কোন ধারনা?



1
দুঃখিত, আমি পরের বার আরও কঠিন দেখাচ্ছে। লক্ষণীয় যে প্রশ্নগুলি একই রকম ছিল।
এরিক উইলসন

1
3512 এর শিরোনাম অনেক ভাল হতে পারে । "বেসিক গ্রেপ ব্যবহারের প্রশ্ন" আপনাকে আসল প্রশ্ন সম্পর্কে পুরোপুরি কিছু বলে না। এটি ঠিক না করা হলে আমাদের সম্ভবত আরও ফালতু রয়েছে।
রিচার্ড হোসকিন্স

1
@richardoskins, স্থির
জন টি

উত্তর:


16
find . -name '*.java' | xargs grep <your pattern here>

5
আরও ভাল, নাল টার্মিনেটেড আইটেমগুলি ব্যবহার করুন যাতে কোনও স্থানের সাথে কোনও ফাইলের নাম দুটি ফাইলের নামে বিভক্ত না হয়: সন্ধান করুন। -নম '*। জাভা'-টাইপ চ-প্রিন্ট 0 | xargs -0, grep <আপনার প্যাটার্ন এখানে>
CoverosGene

1
@ কভারোসগেইন: আপনি এটির জন্য xargs করতে --replay বিকল্পটি ব্যবহার করতে পারেন - এর মতো: ... | xargs --rerep grep "}}" <প্যাটার্ন>
অরথর্ন

অনেক অনেক ধন্যবাদ, আমি জানতাম অবশ্যই একটি আদেশ থাকতে হবে যা কাজ করে xargsdoes
এরিক উইলসন

6

এই ধরণের প্রয়োজনের জন্য বিশেষভাবে ডিজাইন করা একটি সরঞ্জাম রয়েছে: এসিসি

ack হ'ল গ্রেপের মতো একটি সরঞ্জাম, যা ভিন্ন ভিন্ন উত্স কোডের বৃহত গাছ সহ প্রোগ্রামারগুলিকে লক্ষ্য করে

এছাড়াও "গ্রেপের পরিবর্তে এসিসি ব্যবহারের শীর্ষ 10 কারণগুলি" পড়ুন। ACK পাতা।


1
সাধরণ। একটি সত্যিকারের ইউনিক্স সরঞ্জামটির একটি পুনরাবৃত্ত নাম প্রয়োজন যা তার heritageতিহ্যকে নির্দেশ করে ... যেমন abtg [এবিটিজির চেয়ে আরও ভাল গ্রেপ], বা অন্য কিছু। সেটি হল ACK? এ সম্পর্কে কেবলমাত্র ভাল ধারণাটি হ'ল উন্নত ন্যাকের লেখক ইতিমধ্যে একটি নাম বেছে নিয়েছে;)
মাইকেজ

আমি আকিকে সত্যিই ভালোবাসি তার একটি কারণ আপনি ফাইলের ধরণ উল্লেখ করতে পারেন। উদাহরণস্বরূপ, আমি "ack --html <pattern>" দিয়ে এটি আমার সমস্ত .html, .htm, .xhtml, .html, ইত্যাদি ফাইলগুলি একসাথে অনুসন্ধান করে।
মার্ক ভ্যান লেন্ট

আক আমার জন্য গ্রেপ প্রতিস্থাপন করেছে।
রায়ান সি থম্পসন


0

অনুসন্ধান . -প্রকার এফ-নাম '* .জভা' -প্রিন্ট 0 | xargs -0 grep -wo 'foo' | wc -l


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