سؤال كيفية العثور على الملفات مع نص معين في المحطة


أود العثور على جميع الملفات التي تحتوي على سلسلة نصية معينة. كيف ستفعل ذلك في الصالة؟


131
2017-07-13 09:42


الأصل


إذا كنت تريد نتيجة سريعة ، فاستخدم Spotlight ، على الرغم من ذلك. أيضا إذا كنت تريد العثور على الملفات التي لا تخزن بالضرورة النص مباشرة داخل الملف مثل PDF أو ODF. - Joey
نصيحة جيدة ، ولكن في حالتي لست متأكدا من فهرسة الملفات لأنها على برامج تشغيل الشبكة. وأيضا هم ملفات XML التي تنتمي إلى برنامج معين. - Svish
إلقاء نظرة على unix.stackexchange.com/a/37932/213832 هذا الحل يعمل بشكل جيد - boyd4715


الأجوبة:


grep -r 'text goes here' path_goes_here

236
2017-07-13 09:47



أود أن أقترح أ man grep لاكتشاف كل الخيارات الرائعة من grep - Ludovic Kuty
هذا يسرد كل ملف موجود في المسار ويضيف: No such file or directory  أحاول الحصول فقط على قائمة من تكرارات النص. كيف يمكننا الحصول على هذه القائمة؟ - CP3O
فهمتك: grep -lr "text pattern" ./ -s . grep -lr "text pattern" [PATH OF PARENT] -s - CP3O


استخدام الأضواء

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

لا تنس أن تنظر إلى:

man mdfind

24
2017-08-12 22:38



هل هذا العمل للملفات التي لا تبرزها الأضواء (مثل الملفات داخل المجلدات المخفية ، ملفات تهيئة النظام ، إلخ)؟ - Peter Berg
لا يبدو Grep تحليل ملفات .xlsx ، ولكن هذا عملت بشكل جيد. مثال سهل آخر: mdfind -onlyin. "searchtext" - FvD


  1. من خلال ايك

brew install ack ack "text goes here"

  1. من خلال البحث

find . |grep "text goes here"

  1. من خلال grep

grep -RnslI "text goes here"


7
2018-03-03 14:07





يمكنك اختيار واحد مما يلي حسب ذوقك واحتياجاتك. لنفترض أنك بحاجة للبحث عن ملفات تحتوي على نص - "متزامن" ، بشكل متكرر في الدليل الحالي ، يمكنك القيام بذلك بإحدى الطرق مثل أدناه:

باستخدام grep enter image description here

باستخدام ack enter image description here


1
2018-06-01 08:00





إجابة 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 لا تطبع أخطاء "لا يوجد ملف أو دليل"؟


1
2018-06-01 15:27



طريقة أخرى لتجنب تلك المزعجة لايوجد ملف مشابه أخطاء ، هو أن الأنابيب stderr إلى خالية. grep ... 2>/dev/null. يعمل هذا الحل لمعظم البرامج ، حيث أنها تقوم بإبلاغ رسائل الخطأ على دفق stderr ، وليس stdout. لقد استخدمت هذا الحل عدة مرات مع find، كما سيقول طلب الاذن مرفوض للعديد من الملفات. - jpaugh
(1) إذا كنت تحصل No such file or directory رسائل للملفات الموجودة ، إما أنك تقوم بشيء ما خطأ ، أو أن النظام الخاص بك مكسور. (2) ماذا يفعل [PATH OF PARENT] يجب أن تفعل مع أي شيء؟ - G-Man
@ G-Man قمت بتحرير الإجابة لإظهارها [PATH OF DIRECTORY] فقط طمر شخص غير مألوف يريد أن يعرف لماذا كنت قد وضعت ./ - CP3O
@ G-Man أنا باستخدام ماك لا أوبونتو ، لست متأكدا كيف سيتم كسر نظام بلدي ، وأنا بالكاد فعلت أي شيء على ذلك حتى الآن. - CP3O