আমি নির্দিষ্ট লিখিত স্ট্রিংযুক্ত সমস্ত ফাইলের জন্য আমার সম্পূর্ণ লিনাক্স সিস্টেমটি স্ক্যান করার একটি উপায় অনুসন্ধান করার চেষ্টা করছি। কেবল স্পষ্ট করে বলার জন্য, আমি ফাইলের ভিতরে নয়, ফাইলের মধ্যে টেক্সট খুঁজছি।
আমি কীভাবে এটি করব তা যখন সন্ধান করছিলাম তখন আমি এই সমাধানটি দুইবার পেয়েছিলাম:
find / -type f -exec grep -H 'text-to-find-here' {} \;
তবে এটি কাজ করে না doesn't মনে হয় এটি সিস্টেমের প্রতিটি ফাইল প্রদর্শন করে।
এটি কি এটি করার সঠিক উপায়ের কাছাকাছি? তা না হলে আমার কীভাবে করা উচিত? ফাইলগুলিতে পাঠ্য স্ট্রিংগুলি সন্ধান করার এই ক্ষমতাটি আমি করছি এমন কিছু প্রোগ্রামিং প্রকল্পের জন্য অসাধারণভাবে কার্যকর হবে।
-H
সঙ্গে -l
(এবং হয়ত grep
সঙ্গে fgrep
)। নামের নির্দিষ্ট নিদর্শনগুলির সাথে ফাইলগুলি বাদ দিতে আপনি find
আরও উন্নত উপায়ে ব্যবহার করবেন । find
যদিও এটি ব্যবহার করা শিখতে পারা যায় । শুধু man find
।
find … -exec <cmd> +
টাইপ করা সহজ এবং চেয়ে দ্রুত find … -exec <cmd> \;
। এটি কেবল তখনই কাজ করে যদি <cmd>
কোনও ফাইলের নাম আর্গুমেন্ট গ্রহণ করে। <cmd>
পাইথন বা রুবি স্ক্রিপ্টগুলির মতো ধীরে ধীরে শুরু হলে কার্যকর করার সময় সাশ্রয় করা বিশেষত বড় ।
grep "pattern" path/*.txt
.
অন্যকেও একক চরিত্রের ওয়াইল্ডকার্ড হিসাবে ব্যাখ্যা করবে । আমার পরামর্শটি সর্বদা fgrep বা egrep ব্যবহার করা।