গ্রেপ এবং ফাইল নিদর্শনগুলির সাথে পুনরাবৃত্তির পাঠ্য অনুসন্ধান


46

এই ফোল্ডার কাঠামোর উদাহরণ দেওয়া হয়েছে:

/folder1/file1.txt
/folder1/file2.djd
/folder2/file3.txt
/folder2/file2.fha

"/" থেকে সমস্ত *.txtফাইলগুলিতে আমি কীভাবে পুনরাবৃত্ত পাঠ্য অনুসন্ধান করব grep?

( "grep -r <pattern> *.txt""/" থেকে চালানোর সময় ব্যর্থ হয়, যেহেতু .txtfolder ফোল্ডারে কোনও ফাইল নেই ))

উত্তর:


61

জিএনইউ গ্রেপের আমার সংস্করণটিতে এটির জন্য একটি পরিবর্তন রয়েছে:

grep -R --include='*.txt' $Pattern

নীচে বর্ণিত:

--include=GLOB

কেবলমাত্র সেই ফাইলগুলি অনুসন্ধান করুন যার ভিত্তির নামটি জিএলওবি-র সাথে মেলে (ওয়াইল্ডকার্ডের ম্যাচটি --excolve এর অধীনে বর্ণিত হিসাবে ব্যবহার করা হয়)।


19

আপনার যদি প্রচুর পরিমাণে ফাইল থাকে তবে 'আর্গুমেন্ট তালিকা খুব দীর্ঘ' ত্রুটি এড়াতে কমান্ডের সাথে xargs অন্তর্ভুক্ত করা কার্যকর হবে।

find . -name '*.txt' -print | xargs grep <pattern>

6
যদি কোনও ফাইল বা ডিরেক্টরি নামের মধ্যে ফাঁকা স্থান থাকে তবে এই ফর্মটি ব্যবহার করুন: সন্ধান করুন। -নাম '* .txt' -প্রিন্ট 0 | xargs -0 গ্রেপ <প্যাটার্ন>
জেসন লুথার

2
এবং অবশ্যই ফাইল নামগুলির সমস্যাটি আছে যা দিয়ে শুরু হয় -
টিজে ক্রাউডার

grepদ্রুততর find
নবী KAZ

2

আপনি আপনার ব্যবহার করতে সক্ষম হতে পারে zsh'র EXTENDED_GLOBবিকল্প ( ডক্স )

grep <pattern> **/*.txt

কেবলমাত্র ওপি যদি zsh ব্যবহার করে তবে তা আকর্ষণীয়।
Law29



0

মানিসের উত্তর প্রতিটি পাঠ্য ফাইলের জন্য একটি নতুন গ্রেপ-প্রক্রিয়া তৈরি করবে। আপনার যদি সেখানে প্রচুর পাঠ্য ফাইল রয়েছে তবে আপনি প্রথমে প্রতিটি ফাইল গ্রেপিংয়ের কথা বিবেচনা করতে পারেন এবং কাজগুলি শেষ হলে .txt-ফাইলগুলি চয়ন করতে পারেন:

grep -r <pattern> * | grep \.txt:

এটি আরও বেশি ডিস্ক-ইনটেনসিভ, তবে যাইহোক দ্রুত হতে পারে।


0

এটি ২০১২ এর আর কোনও উপায় নেই যে আমি এখনও পুনরাবৃত্ত টেক্সট অনুসন্ধানের জন্য গ্রেপ ব্যবহার করব।

আইএমএইচও-র আজকের উত্তরগুলিতে রিপগ্রিপ অন্তর্ভুক্ত করা উচিত :

rg <pattern> -ttxt
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.