আমি একটি গিট সংগ্রহস্থলের মাধ্যমে অনুসন্ধান করছি এবং .gitফোল্ডারটি অন্তর্ভুক্ত করতে চাই ।
grep আমি চালাতে গেলে এই ফোল্ডারটি অন্তর্ভুক্ত করে না
grep -r search *
এই ফোল্ডারটি অন্তর্ভুক্ত করার জন্য গ্রেপ কমান্ড কী হবে?
আমি একটি গিট সংগ্রহস্থলের মাধ্যমে অনুসন্ধান করছি এবং .gitফোল্ডারটি অন্তর্ভুক্ত করতে চাই ।
grep আমি চালাতে গেলে এই ফোল্ডারটি অন্তর্ভুক্ত করে না
grep -r search *
এই ফোল্ডারটি অন্তর্ভুক্ত করার জন্য গ্রেপ কমান্ড কী হবে?
উত্তর:
আপনি যা করছেন তার আরও ভাল বিকল্প হিসাবে দয়া করে এই পোস্টের শেষে সমাধানটি দেখুন।
আপনি স্পষ্টভাবে লুকানো ফাইলগুলি অন্তর্ভুক্ত করতে পারেন (ডিরেক্টরিটি একটি ফাইলও হয়)।
grep -r search * .*
*লুকানো বেশী ছাড়া সব ফাইল ম্যাচ হবে এবং .*শুধুমাত্র লুকানো ফাইল ম্যাচ হবে। তবে এটি কোনও ব্যর্থ হবে যদি কোনও প্রদত্ত ডিরেক্টরিতে কোনও গোপনীয় ফাইল বা কোনও লুকানো ফাইল না থাকে। আপনি অবশ্যই স্পষ্টভাবে .gitপরিবর্তে যোগ করতে পারেন .*।
তবে, আপনি যদি কোনও প্রদত্ত ডিরেক্টরিটি সন্ধান করতে চান তবে এটি এটি করুন:
grep -r search .
.বর্তমান পথ, যা উভয় অ লুকানো এবং গোপন ফাইল অন্তর্ভুক্ত করা হবে ম্যাচ হবে।
.*..
আমি কেবল এই সমস্যায় পড়েছি, এবং @ বিটমাস্কের উত্তরের উপর ভিত্তি করে @sehe দ্বারা চিহ্নিত সমস্যাটি এড়াতে এখানে আমার সাধারণ পরিবর্তনটি দেওয়া হয়েছে:
grep -r search_string * .[^.]*
sudo grep -r ANDROID_HOME * .[^.]*আমি এখানে কী ভুল করছি?
সম্ভবত আপনি সম্পূর্ণ সমাধানের জন্য "ফাইন্ড" কমান্ডের সাথে "গ্রেপ" একত্রিত করতে পছন্দ করবেন:
find . -exec grep -Hn search {} \;
এই কমান্ডটি "অনুসন্ধান" স্ট্রিংয়ের জন্য লুকানো ফাইল বা ডিরেক্টরিগুলির মধ্যে অনুসন্ধান করবে এবং এই আউটপুট ফর্ম্যাটটির সাথে কোনও ফাইলকে কাকতালীয়ভাবে তালিকাবদ্ধ করবে:
ফাইলের পথ: লাইন নম্বর: কাকতালীয় সাথে লাইন
./foo/bar:42:search line
./foo/.bar:42:search line
./.foo/bar:42:search line
./.foo/.bar:42:search line
আপনি এই ডিরেক্টরিটি ব্যবহার করতে চাইতে পারেন, ধরে নিচ্ছেন আপনি বর্তমান ডিরেক্টরিটি অনুসন্ধান করছেন (অন্যথায় প্রতিস্থাপন করুন। পছন্দসই ডিরেক্টরিটি সহ):
find . -type f | xargs grep search
অথবা আপনি যদি শীর্ষ স্তরের সন্ধান করতে চান (যা আপনি এগুলি চেষ্টা করে দেখছেন তা পরীক্ষা করার জন্য দ্রুত):
find . -type f -maxdepth 1 | xargs grep search
আপডেট: স্কটের মন্তব্যের জবাবে আমি উদাহরণগুলি পরিবর্তন করেছি। আমি "টাইপ এফ" যুক্ত করেছি।
~ব্যবহারকারীর হোম ডিরেক্টরি। প্রশ্নটি ব্যবহারকারীর হোম ডিরেক্টরি সম্পর্কে নয়, সুতরাং উত্তরটির উল্লেখ করা উচিত নয় ~। (২) একটি findকমান্ডে -name '*'একটি অপ-অপশন (অর্থাত্ এটি কোনও উদ্দেশ্য করে না)।
আপনার বর্তমান অবস্থান থেকে সমস্ত লুকানো ফাইল এবং ডিরেক্টরিতে অনুসন্ধান করতে:
find . -name ".*" -exec grep -rs search {} \;
কেবলমাত্র সমস্ত লুকানো ফাইল:
find . -name ".*" -type f -exec grep -s search {} \;
কেবলমাত্র সমস্ত লুকানো ডিরেক্টরি:
find . -name ".*" -type d -exec grep -rs search {} \;
কেবলমাত্র একটি নির্দিষ্ট ফোল্ডারের মধ্যেই আপনি ব্যবহার করতে পারেন:
ls -al | grep " \."
এটি গ্রেপ করার জন্য পাইপ এবং পাইপ দেওয়া খুব সহজ কমান্ড।
টাইলারের পরামর্শ ছাড়াও, লুকানো ফাইলগুলি সহ সমস্ত ফাইল এবং ফোল্ডারগুলি পুনরাবৃত্তভাবে গ্রেপ করার কমান্ড এখানে রয়েছে
find . -name "*.*" -exec grep -li 'search' {} \;
আপনি লুকানো ডিরেক্টরি ফাইলগুলির জন্য নির্দিষ্ট ধরণের লুকানো ফাইলগুলিও অনুসন্ধান করতে পারেন:
grep -r --include=*.directory "search-string"
এটি অন্য কয়েকটি বিকল্পের চেয়ে ভাল কাজ করতে পারে। অন্যান্য বিকল্পগুলি যে কাজ করেছে তা খুব ধীর হতে পারে।