স্ট্রিং অনুসন্ধান: অনুসন্ধান এবং grep এবং?


1

টাস্ক:
1) একটি ডিরেক্টরির মধ্যে ফাইলের মধ্যে একটি স্ট্রিং 'সজ্জা' খুঁজে
2) এটির প্রতিটি ফাইলের জন্য সজ্জা জন্য সংঘটিত # পেতে

সমস্যার প্রথম অংশটি আংশিকভাবে সমাধান করা হয় find . -type f | grep -i decor *
কিন্তু এই মনে হচ্ছে না grep থেকে পাওয়া যায় যে সব ফাইলের জন্য find কিন্তু বর্তমান ডিরেক্টরি শীর্ষে কি।
আমি ছাড়া অন্য কিছু ব্যবহার করতে হবে * জন্য grep খুঁজে পাওয়া থেকে ফাইলের জন্য grep যাও?

কি পাইপ করা প্রয়োজন যাতে এটি একটি ফাইল নাম এবং প্রতিটি ফাইলের জন্য সাজসজ্জার জন্য ঘটনার সংখ্যা প্রদর্শন করবে?

উত্তর:


2

আপনি করতে পারেন:

find . -type f -exec grep -icH decor {} \; | grep -v :0\$

এটি ফাইলের নাম এবং প্রতিটি মিলের গণনা পাবে এবং পাইপযুক্ত egrep ব্যবহার করে 0 টি গণনা সহ ফাইলগুলি সরাবে


সমস্যা নেই! তবে সম্পাদনাটি নোট করুন, কোলন ব্যতীত এটি 0 এ শেষ হওয়া কোনও সংখ্যা উপেক্ষা করবে, তাই 10, 100 ইত্যাদি ...
arco444

শুধু এই মজার জন্য, এবং এই ব্যায়াম সুযোগ অতিক্রম করার উপায়, আমি একটি জারি find2perl . -type f -exec grep -icH {} \; আমি যোগ করতে ইচ্ছুক কিনা দেখতে grep -v: 0 \ $ অংশ। সম্ভবত জ্যোপার্ডির সময়, দয়িত মনে হয়।
Billy McCloskey

2

"একটি ডিরেক্টরিতে ফাইলগুলি" সাধারণত "আরাইড সাবডিরেক্টরিগুলিকে পুনরাবৃত্তি করে না"। আমি শুধু ব্যবহার করা হবে

grep -c decor *

যদি আপনি সাবডিরেক্টরিগুলি অনুসন্ধান করতে চান, তবে আপনি এটি ব্যবহার করতে পারেন তবে কমান্ডগুলিকে আলাদাভাবে সংযুক্ত করুন: পাইপ কেবল দ্বিতীয় কমান্ডের আউটপুটটিকে দ্বিতীয় ইনপুটের সাথে সংযুক্ত করে। Grep তার ইনপুট ফাইলের তালিকা আশা করে না, যদিও।

find . -type f -exec grep -cH decor {} + | grep -v :0

0

আপনি -exec বিকল্প ব্যবহার করতে পারেন। find . -type f -exec grep decor {} \;

অথবা Xargs ব্যবহার করুন find . -type f | xargs -i grep decor {}


-1: i) এটি সাদা স্থান সহ ফাইলের নামগুলিতে বিরতি দেয় এবং ii) সমাধানগুলির জন্য কোনও সংখ্যা ফেরত দেয় না decor যা অপরাহ্ন জিজ্ঞাসা করা হয়।
terdon

0

TMTOWTDI - আমি অন্য রূপ দেখতে পছন্দ করি, তাই এখানে আমারও রয়েছে:

$ find . -type f -exec egrep -li decor {} \;

$ perl -e '$c=0; while(<>){$c++ if /decor/;} continue {if(eof){print("$ARGV:$c\n"); close ARGV; $c=0;} }' *

শুধু কারণ আমি অনুভব করলাম প্যার্ল 1-লাইনারটি পুনরায় লেখার মতো যা পুরানো বয়স হিসাবে একই রকম করে awk উদাহরণ পাতা থেকে নেওয়া কার্নিঘান এবং পাইক


TMTOWTDI - কিছু মূল্যবান মত শব্দ। মনে রাখবেন perl2find তাই দরকারী পরামর্শ না , উপরে - শুধু মজা জন্য। আপনি ইতিমধ্যে একই রেফারেন্স সঙ্গে, আমার উত্তর কাজ করেছেন। বলিহারি!
Billy McCloskey

BTW - যে যখন (& lt; & gt;) {} অবিরত {if (eof) {বন্ধ ARGV;} idiom স্মরণীয় মূল্য। আবার, যে Perl idiom memorization যোগ্য।
Billy McCloskey
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.