আপনি নির্দিষ্ট ফাইল প্রকারে নির্দিষ্ট পাঠ্যের জন্য কীভাবে অনুসন্ধান করবেন? [প্রতিলিপি]


13

সম্ভাব্য সদৃশ:
আমি কীভাবে কিছু পাঠ্যের জন্য উত্স ফাইলগুলিতে গ্রেপ করতে পারি?

বর্তমান ডিরেক্টরিতে পুনরাবৃত্তভাবে নির্দিষ্ট ফাইলের ধরণের নির্দিষ্ট পাঠ্য সন্ধানের জন্য আদেশ কী?


আপনি কি ফিরে চান? লাইনটি লেখাটি চালু আছে? ফাইলটির নাম লেখা আছে?
ম্যাক্লিওড

@ ম্যাক্লিওড: যদি সম্ভব হয় তবে এটি ভাল হবে (ফাইলের নাম + লিনেনবার + স্নিপেট)।
ফিলিপ

@ এসএলএইচসি: অ্যাক-গ্রেপ ইনস্টল করা নেই; এটি ইনস্টল করার অনুমতি আমার কাছে নেই।
ফিলিপ

1
আপনার প্রয়োজন হবে না ack-grep, আপনি প্রশ্নের উত্তরগুলি শুরু হিসাবে (যেমন আমি বলেছিলাম), যেমন find | xargs | grepলাইন হিসাবে ব্যবহার করতে পারেন । নির্দিষ্ট আউটপুট জন্য, man grepপড়া সর্বদা দরকারী।
slhck

@ এসএলএইচএইচসি: ধন্যবাদ, তাই আমি করেছি grep -r --include=*.<type> "<string>" ., যা কাজ করেছে। দুর্ভাগ্যক্রমে, পেইন্টিং ডটের কথা উল্লেখ করার জন্য ম্যান পৃষ্ঠাটি খুব সোজা নয়।
ফিলিপ

উত্তর:


11
find . -type f -name '*.extension' | xargs grep "string"

এই কমান্ডের রান খুঁজে * .extension, তারপর রান নকশার সাথে মেলে এমন নামের সাথে স্থানীয় ডিরেক্টরি (।) যে কোন ফাইল জন্য , grep ফলের "STRING" এর জন্য খোঁজ । মনে রাখবেন যে, খোঁজ মজ্জাগতভাবে রিকার্সিভ হয়। আপনি যতক্ষণ নিজের নামের উপর ভিত্তি করে না এমন ফাইলগুলি থেকে আপনি যে ফাইলগুলি চান তা আলাদা করতে পারবেন, এটি আপনার পক্ষে কাজ করা উচিত।


2
স্পেসগুলি যুক্ত ফাইলের সাথে এটি বিরতি দেয়, আপনার print0নিরাপদ হওয়ার বিকল্পটি ব্যবহার করা উচিত ।
স্ল্যাক করুন

কেবল find -print0সাহায্য করবে না, ব্যবহারও করবে xargs -0:find . -type f -name "*.ext" -print0 | xargs -0 grep "string"
বার্নিনলিয়ো

0

ফাইলের নাম তালিকাভুক্ত করতে নির্দিষ্ট ফাইলটিতে লাইন নম্বর এবং পাঠ্যটি প্রদর্শিত হবে:

for x in *.xxx; do [ -r $x ] | cat $x | grep -n TEXT | xargs printf "$x:%s\n";done

এটি কেবলমাত্র বর্তমান ডিরেক্টরিতে চলবে তবে এটি আপনার জন্য এটি দুর্দান্তভাবে ফর্ম্যাট করবে।

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