টার্মিনালে নির্দিষ্ট পাঠ্য সহ ফাইলগুলি কীভাবে সন্ধান করা যায়


168

আমি এমন সমস্ত ফাইল খুঁজে পেতে চাই যাতে পাঠ্যের একটি নির্দিষ্ট স্ট্রিং থাকে। টার্মিনালে আপনি কীভাবে এটি করবেন?


যদি আপনি একটি দ্রুত ফলাফল চান, তবে স্পটলাইট ব্যবহার করুন। এছাড়াও যদি আপনি এমন ফাইলগুলি খুঁজতে চান যা অগত্যা পিডিএফ বা ওডিএফ এর মতো ফাইলের মধ্যে সরাসরি পাঠ্য সঞ্চয় করে না।
জোয়

ভাল পরামর্শ, তবে আমার ক্ষেত্রে আমি নিশ্চিত না যে ফাইলগুলি ড্রাইভার ড্রাইভারের উপর থেকে সেগুলি সূচিযুক্ত। এবং এগুলি কোনও নির্দিষ্ট প্রোগ্রামের অন্তর্ভুক্ত এক্সএমএল ফাইল।
Svish

Unix.stackexchange.com/a/37932/213832 এ দেখুন এই সমাধানটি ভালভাবে কাজ করে
boyd4715

উত্তর:


279
grep -r 'text goes here' path_goes_here


এটি পথে থাকা প্রতিটি ফাইলকে তালিকাবদ্ধ করে যোগ করে: No such file or directory আমি কেবল পাঠ্য সংঘটনগুলির তালিকা পাওয়ার চেষ্টা করছি। কীভাবে আমরা সেই তালিকা পেতে পারি?
সিপি 3 ও

7
বুঝেছি: grep -lr "text pattern" ./ -s; grep -lr "text pattern" [PATH OF PARENT] -s
সিপি 3 ও

তবে এটি ফাইলের বিবরণ (নাম, পথ) নয়, মেলানো ফাইলের সামগ্রীগুলি ফেরত দেয়। @ সিপি 3-এর পরামর্শ কার্যকর করে।
ভূগোলিক

28

স্পটলাইট ব্যবহার করুন

mdfind "text goes here"
mdfind -onlyin /home/user/Desktop -live "live update"

দেখতে ভুলবেন না:

man mdfind

2
স্পটলাইট সূচী না করে এমন ফাইলগুলির জন্য এটি কাজ করবে (যেমন লুকানো ফোল্ডারগুলির মধ্যে থাকা ফাইলগুলি, সিস্টেম কনফিগারেশন ফাইল, ইত্যাদি)?
পিটার বার্গ

গ্রেপ .xlsx ফাইলগুলি বিশ্লেষণ করে বলে মনে হচ্ছে না, তবে এটি কার্যকর হয়েছে। আরেকটি সহজ উদাহরণ: এমডিফাইন্ড -অনলাইন। "অনুসন্ধানের পাঠ্য"
এফভিডি

11
  1. আ্যাক এর মাধ্যমে

brew install ack ack "text goes here"

  1. মাধ্যমে খুঁজে

find . |grep "text goes here"

  1. গ্রেপ মাধ্যমে

grep -RnslI "text goes here"


4

আপনার স্বাদ এবং প্রয়োজনের উপর নির্ভর করে আপনি নীচের একটি চয়ন করতে পারেন। ধরুন আপনার বর্তমান ডিরেক্টরিতে পুনরাবৃত্তভাবে "async" পাঠ্যযুক্ত ফাইলগুলি সন্ধান করা দরকার, আপনি নীচের মতো একটি উপায়ে এটি করতে পারেন:

গ্রেপ ব্যবহার করে এখানে চিত্র বর্ণনা লিখুন

এসিসি ব্যবহার করে এখানে চিত্র বর্ণনা লিখুন


2

Ignacio এর উত্তর দুর্দান্ত এবং আমাকে নির্দিষ্ট পাঠ্যযুক্ত ফাইলগুলি সন্ধান করতে সহায়তা করেছে। আমি কেবল যে সমস্যার মুখোমুখি ছিলাম তা হ'ল এই কমান্ডটি চালানোর সময় সমস্ত ফাইল তালিকাভুক্ত করা হবে যেখানে প্যাটার্নটি প্রদর্শিত হয়নি।

No such file or directory প্যাটার্নটি ধারণ করে না এমন ফাইলগুলির পাশাপাশি এটি আমি দেখছি।

যদি এর পরিবর্তে আপনি যোগ -sহিসাবে, কমান্ড: grep -lr "text pattern" ./ -s; grep -lr "text pattern" [PATH DIRECTORY] -sব্যবহৃত হয়, এটি কেবল আপনাকে দেখায় যে কোন ফাইলগুলিতে প্যাটার্ন রয়েছে।

একইভাবে যদি grep -nr "text pattern" ./ -s; grep -nr "text pattern" [PATH OF DIRECTORY] -sকমান্ডটি ব্যবহার করা হয় এটি ফাইলের সাথে লাইন নম্বর এবং প্যাটার্নের উপস্থিতি প্রিন্ট করে।

আমার বুঝতে ভুল হলে দয়া করে আমাকে সংশোধন করুন।

তথ্যসূত্র: গ্রিপ কীভাবে 'এ জাতীয় কোনও ফাইল বা ডিরেক্টরি নেই' ত্রুটিটি প্রিন্ট না করে থাকতে পারি?


এই সমস্যাগুলি এড়ানোর আরেকটি উপায় হ'ল এ জাতীয় কোনও ত্রুটি নেই, স্টেডারকে নালতে ফেলা হয়। grep ... 2>/dev/null। এই সমাধানটি বেশিরভাগ প্রোগ্রামের জন্য কাজ করে, যেহেতু তারা স্ট্রডার নয়, স্ট্যাডার স্ট্রিমে ত্রুটি বার্তাগুলির প্রতিবেদন করে। আমি এই সমাধানটি বহুবার ব্যবহার করেছি find, কারণ এটি বলবে যে অনেক ফাইলের জন্য অনুমতি অস্বীকার করা হয়েছে।
jpaugh

(1) যদি আপনি No such file or directoryউপস্থিত ফাইলগুলির জন্য বার্তা পেয়ে থাকেন তবে হয় আপনি কিছু ভুল করছেন বা আপনার সিস্টেমটি নষ্ট হয়ে গেছে। (২) কোন [PATH OF PARENT]কিছুর সাথে কী করার আছে?
জি ম্যান

@ জি-ম্যান আমি উত্তরটি সম্পাদনা করেছি [PATH OF DIRECTORY]কেবলমাত্র অপরিচিত কাউকে কেন আমি রেখেছি তা জানতে চাইলে তা দেখানোর জন্য./
সিপি

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