it-swarm.asia

كيف يمكنني العثور على جميع الملفات التي تحتوي على نص معين على Linux؟

أحاول إيجاد طريقة لفحص نظام Linux بالكامل بحثًا عن جميع الملفات التي تحتوي على سلسلة نصية محددة. فقط للتوضيح ، أنا أبحث عن نص داخل الملف ، وليس في اسم الملف.

عندما كنت أبحث عن كيفية القيام بذلك ، صادفت هذا الحل مرتين:

find / -type f -exec grep -H 'text-to-find-here' {} \;

ومع ذلك ، لا يعمل. يبدو أن عرض كل ملف واحد في النظام.

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

4457
Nathan

قم بما يلي:

grep -rnw '/path/to/somewhere/' -e 'pattern'
  • -r أو -R متكرر ،
  • -n هو رقم السطر و
  • -w تعني مطابقة الكلمة بالكامل.
  • يمكن إضافة -l (الأحرف الصغيرة L) لإعطاء اسم ملف الملفات المطابقة.

إلى جانب هذه ، يمكن استخدام إشارات --exclude و --include و --exclude-dir للبحث الفعال:

  • سيبحث هذا فقط من خلال الملفات التي لها امتدادات .c أو .h:

    grep --include=\*.{c,h} -rnw '/path/to/somewhere/' -e "pattern"
    
  • سيستبعد هذا البحث في جميع الملفات التي تنتهي بامتداد .o:

    grep --exclude=*.o -rnw '/path/to/somewhere/' -e "pattern"
    
  • بالنسبة للأدلة ، يمكن استبعاد دليل (عناوين) معيّن من خلال المعلمة --exclude-dir. على سبيل المثال ، سيؤدي هذا إلى استبعاد dir dir1/، dir2/وكلها مطابقة * .dst /:

    grep --exclude-dir={dir1,dir2,*.dst} -rnw '/path/to/somewhere/' -e "pattern"
    

هذا يعمل بشكل جيد للغاية بالنسبة لي ، لتحقيق نفس الغرض تقريبا مثل لك.

لمزيد من الخيارات ، تحقق من man grep.

8076
rakib_

يمكنك استخدام grep -ilR:

grep -Ril "text-to-find-here" /
  • i تعني حالة التجاهل (اختياري في حالتك).
  • R تعني العودية.
  • l تعني "إظهار اسم الملف ، وليس النتيجة نفسها".
  • / لتقف على البدء من جذر جهازك.
1279
fedorqui

يمكنك استخدام ack . يشبه grep لكود المصدر. يمكنك مسح نظام الملفات بأكمله به.

فقط افعل:

ack 'text-to-find-here'

في الدليل الجذر الخاص بك.

يمكنك أيضًا استخدام التعبيرات العادية ، تحديد نوع الملف ، إلخ.


UPDATE

لقد اكتشفت للتو The Silver Searcher ، الذي يشبه ack لكن أسرع من 3-5 مرات حتى أنه يتجاهل الأنماط من ملف .gitignore.

283
EarlOfEgo

يمكنك استخدام:

grep -r "string to be searched"  /path/to/dir

r تعني العودية ، لذا سوف تبحث في المسار المحدد وأيضًا الدلائل الفرعية الخاصة به. سيخبرك هذا باسم الملف بالإضافة إلى طباعة السطر في الملف حيث تظهر السلسلة.

أو أمر مشابه للأمر الذي تحاوله (مثال:) للبحث في جميع ملفات جافا سكريبت (* .js):

find . -name '*.js' -exec grep -i 'string to search for' {} \; -print

سيؤدي ذلك إلى طباعة الخطوط الموجودة في الملفات التي يظهر فيها النص ، لكنه لا يطبع اسم الملف.

بالإضافة إلى هذا الأمر ، يمكننا كتابة هذا أيضًا: grep -rn "سلسلة للبحث"/path/to/directory/أو/file -r: البحث المتكرر n: سيتم عرض رقم السطر للمطابقات

156
learner_19

يمكنك استخدام هذا:

grep -inr "Text" folder/to/be/searched/
98
A R

قائمة أسماء الملفات التي تحتوي على نص معين

بادئ ذي بدء ، أعتقد أنك استخدمت -H بدلاً من -l. كما يمكنك محاولة إضافة النص داخل علامات اقتباس متبوعة بـ {} \.

find / -type f -exec grep -l "text-to-find-here" {} \; 

مثال

لنفترض أنك تبحث عن ملفات تحتوي على نص محدد "ترخيص Apache" داخل الدليل الخاص بك. سيعرض نتائج مشابهة إلى حد ما أدناه (الإخراج سيكون مختلفًا استنادًا إلى محتوى الدليل الخاص بك).

bash-4.1$ find . -type f -exec grep -l "Apache License" {} \; 
./net/Java/jvnet-parent/5/jvnet-parent-5.pom
./commons-cli/commons-cli/1.3.1/commons-cli-1.3.1.pom
./io/swagger/swagger-project/1.5.10/swagger-project-1.5.10.pom
./io/netty/netty-transport/4.1.7.Final/netty-transport-4.1.7.Final.pom
./commons-codec/commons-codec/1.9/commons-codec-1.9.pom
./commons-io/commons-io/2.4/commons-io-2.4.pom
bash-4.1$ 

إزالة حساسية القضية

حتى إذا لم تكن تستخدم الحالة مثل "text" vs "TEXT" ، يمكنك استخدام رمز التبديل -i لتجاهل الحالة. يمكنك قراءة المزيد من التفاصيل هنا .

آمل أن يساعدك هذا.

59
lkamal

إذا كان لديك grep لا يدعم البحث المتكرر ، فيمكنك الجمع بين find مع xargs:

find / -type f | xargs grep 'text-to-find-here'

أجد هذا أسهل في التذكر من تنسيق find -exec.

سيؤدي ذلك إلى إخراج اسم الملف ومحتوى السطر المطابق ، على سبيل المثال.

/home/rob/file:text-to-find-here

علامات اختيارية قد ترغب في إضافتها إلى grep:

  • -i - حالة البحث غير الحساسة
  • -l - قم بإخراج اسم الملف فقط حيث تم العثور على التطابق
  • -h - فقط إخراج السطر المتطابق (وليس اسم الملف)
51
RobEarl

grep ( GNU أو BSD )

يمكنك استخدام أداة grep للبحث بشكل متكرر في المجلد الحالي ، مثل:

grep -r "class foo" .

ملاحظة: -r - البحث بشكل متكرر الدلائل الفرعية.

يمكنك أيضًا استخدام بناء جملة globbing للبحث ضمن ملفات محددة مثل:

grep "class foo" **/*.c

ملاحظة: باستخدام خيار التزحلق (**) ، يقوم بمسح جميع الملفات بشكل متكرر باستخدام ملحق أو نقش معين. لتمكين بناء الجملة هذا ، قم بتشغيل: shopt -s globstar . يمكنك أيضًا استخدام **/*.* لجميع الملفات (باستثناء الملفات المخفية ودون امتداد) أو أي نمط آخر.

إذا كان لديك خطأ في أن الوسيطة طويلة جدًا ، ففكر في تضييق نطاق البحث ، أو استخدم بناء جملة find بدلاً من ذلك مثل:

find . -name "*.php" -execdir grep -nH --color=auto foo {} ';'

بدلاً من ذلك استخدم ripgrep .

__variable

إذا كنت تعمل على مشاريع أكبر أو ملفات كبيرة ، فعليك استخدام ripgrep بدلاً من ذلك ، مثل:

rg "class foo" .

راجع مستندات أو خطوات التثبيت أو التعليمات البرمجية المصدر في صفحة مشروع GitHub /.

إنها أسرع بكثير من أي أداة أخرى مثل/- _ gnu _ / BSDripgrep ، grep ، ucg ، ag ، sift ، ack ، pt أو ما شابه ذلك ، نظرًا لأنه مبني على أعلى محرك Regex من Rust والذي يستخدم عمليات الأتمتة المحدودة ، SIMD والتحسينات الحرفية القوية لجعل البحث سريعًا جدًا.

وهو يدعم تجاهل الأنماط المحددة في ملفات .gitignore ، لذلك يمكن مطابقة مسار ملف واحد مع أنماط متعددة للجلد في وقت واحد.


يمكنك استخدام المعلمات الشائعة مثل:

  • -i - البحث غير الحساسة.
  • -I - تجاهل الملفات الثنائية.
  • -w - ابحث عن الكلمات بأكملها (على عكس مطابقة الكلمات الجزئية).
  • -n - عرض خط المباراة الخاص بك.
  • -C/--context (على سبيل المثال -C5) - يزيد السياق ، حتى ترى الشفرة المحيطة.
  • --color=auto - تمييز النص المطابق.
  • -H - يعرض اسم الملف حيث تم العثور على النص.
  • -c - يعرض عدد خطوط المطابقة. يمكن دمجه مع -H.
50
kenorb
grep -insr "pattern" *
  • i: تجاهل اختلافات الحالة في كل من PATTERN وملفات الإدخال.
  • n: بادئة كل سطر من الإخراج برقم السطر القائم على 1 داخل ملف الإدخال الخاص به.
  • s: منع رسائل الخطأ حول الملفات غير الموجودة أو غير القابلة للقراءة.
  • r: قراءة جميع الملفات تحت كل دليل ، بشكل متكرر.
38
enfinet

محاولة:

find . -name "*.txt" | xargs grep -i "text_pattern"
27
venkat

كيف يمكنني العثور على جميع الملفات التي تحتوي على نص معين على Linux؟ (...)

صادفت هذا الحل مرتين:

find / -type f -exec grep -H 'text-to-find-here' {} \;


إذا كان استخدامfindمثل في مثالك ، فمن الأفضل إضافة -s (--no-messages) إلى grep و 2>/dev/null في نهاية الأمر لتجنب الكثير من تم رفض الإذنgrep و find:

find / -type f -exec grep -sH 'text-to-find-here' {} \; 2>/dev/null

findهي الأداة القياسية للبحث عن الملفات - مقترنة بـ grep عند البحث عن نص معين - على الأنظمة الأساسية المشابهة لـ Unix. غالبًا ما يتم دمج الأمر find مع xargs ، بالمناسبة.

توجد أدوات أسرع وأسهل لنفس الغرض - انظر أدناه. جربهم بشكل أفضل ، {بشرط أن يكونوا متاحين على النظام الأساسي الخاص بك ، بالطبع:

بدائل أسرع وأسهل

RipGrep- أسرع أداة بحث حول:

rg 'text-to-find-here' / -l

The Silver Searcher:

ag 'text-to-find-here' / -l

ack:

ack 'text-to-find-here' / -l

ملاحظة: يمكنك إضافة 2>/dev/null إلى هذه الأوامر أيضًا ، لإخفاء العديد من رسائل الخطأ.


تحذير : ما لم تكن قادرًا على تجنبه ، لا تبحث من '/' (الدليل الجذر) لتجنب بحث طويل وغير فعال في الأمثلة أعلاه ، من الأفضل أن تستبدل '/' باسم دليل فرعي ، على سبيل المثال "/ home" حسب المكان الذي تريد البحث فيه ...

27
Bludzee

هناك أداة مساعدة جديدة تسمى The Silversearcher

Sudo apt install silversearcher-ag

وهي تعمل عن كثب مع Git و VCS الأخرى. لذلك لن تحصل على أي شيء في .git أو دليل آخر.

يمكنك ببساطة استخدام

ag -ia "Search query"

وسوف تفعل المهمة لك!

27
Neil Agarwal

استخدم pwd للبحث من أي دليل تتواجد فيه ، متكررًا نحو الأسفل

grep -rnw `pwd` -e "pattern"

تحديث اعتمادًا على إصدار grep الذي تستخدمه ، يمكنك حذف pwd. في الإصدارات الأحدث . ، يبدو أنها الحالة الافتراضية لـ grep إذا لم يتم تقديم دليل بذلك:

grep -rnw -e "pattern"

أو

grep -rnw "pattern"

سوف تفعل الشيء نفسه على النحو الوارد أعلاه!

26
mahatmanich

grep يمكن استخدامها حتى لو لم نبحث عن سلسلة.

ببساطة الجري ،

grep -RIl "" .

سيتم طباعة المسار إلى جميع الملفات النصية ، أي تلك التي تحتوي على أحرف قابلة للطباعة فقط.

18
Alex Jasmin

فيما يلي قائمة بالأوامر العديدة التي يمكن استخدامها للبحث في الملفات.

grep "text string to search” directory-path

grep [option] "text string to search” directory-path

grep -r "text string to search” directory-path

grep -r -H "text string to search” directory-path

egrep -R "Word-1|Word-2” directory-path

egrep -w -R "Word-1|Word-2” directory-path
16
Atul Arvind

find بسيطة يمكن أن تعمل في متناول يدي. الاسم المستعار في ملف ~/.bashrc الخاص بك:

alias ffind find / -type f | xargs grep

بدء محطة جديدة وإصدار:

ffind 'text-to-find-here'
14
danglingpointer
find /path -type f -exec grep -l "string" {} \;

شرح من التعليقات

find هو أمر يتيح لك العثور على الملفات والكائنات الأخرى مثل الدلائل والروابط في الدلائل الفرعية لمسار معين. إذا لم تحدد قناعًا يجب أن تفي به أسماء الملفات ، فسيعدد كل كائنات الدليل.

-type f specifies that it should proceed only files, not directories etc.
-exec grep specifies that for every found file, it should run grep command, passing its filename as an argument to it, by replacing {} with the filename
14
Vinod Joshi

آمل أن يكون هذا هو المساعدة ...

توسيع grep قليلاً لإعطاء مزيد من المعلومات في الإخراج ، على سبيل المثال ، للحصول على رقم السطر في الملف حيث يمكن تنفيذ النص على النحو التالي:

find . -type f -name "*.*" -print0 | xargs --null grep --with-filename --line-number --no-messages --color --ignore-case "searthtext"

وإذا كانت لديك فكرة عن نوع الملف ، فيمكنك تضييق نطاق البحث عن طريق تحديد امتدادات أنواع الملفات للبحث عنها ، في هذه الحالة .pas OR .dfm files:

find . -type f \( -name "*.pas" -o -name "*.dfm" \) -print0 | xargs --null grep --with-filename --line-number --no-messages --color --ignore-case "searchtext"

شرح قصير للخيارات:

  1. . في find تحدد من الدليل الحالي.
  2. -name "*.*": لجميع الملفات (-اسم "*.pas" -o -name "*.dfm"): فقط *.pas "OR *.dfm الملفات فقط ، OR] _ المحددة مع -o
  3. يحدد -type f أنك تبحث عن الملفات
  4. يعد -print0 و --null على الجانب الآخر من | (توجيه الإخراج) من الأمور الحاسمة ، ويمر اسم الملف من find إلى grep مضمن في xargs ، مما يسمح بمرور أسماء الملفات WITH مسافات في أسماء الملفات ، مما يسمح بمرور أسماء الملفات WITH مسافات في أسماء الملفات. واسم الملف كسلسلة واحدة ، وليس تقسيمها على كل مساحة.
14
Gert van Biljon

Silver Searcher أداة رائعة ، لكن ripgrep قد يكون أفضل.

إنه يعمل على أنظمة Linux و Mac و Windows ، وتم كتابته على Hacker News قبل شهرين (يحتوي هذا على رابط إلى مدونة Andrew Gallant's التي تحتوي على رابط GitHub):

Ripgrep - أداة بحث جديدة لسطر الأوامر

14
AAAfarmclub

محاولة:

find / -type f -exec grep -H 'text-to-find-here' {} \;

التي ستبحث جميع أنظمة الملفات ، لأن / هو المجلد الجذر.

لاستخدام المجلد الرئيسي:

find ~/ -type f -exec grep -H 'text-to-find-here' {} \;

لاستخدام المجلد الحالي:

find ./ -type f -exec grep -H 'text-to-find-here' {} \;
14
user4863663

كتبت بيثون النصي الذي يفعل شيئا مماثلا. هذه هي الطريقة التي ينبغي للمرء استخدام هذا البرنامج النصي.

./sniff.py path pattern_to_search [file_pattern]

الوسيطة الأولى ، path ، هي الدليل الذي سنبحث فيه بشكل متكرر. الوسيطة الثانية ، pattern_to_search ، هي تعبير عادي نريد البحث فيه في ملف. نحن نستخدم تنسيق التعبير المعتاد المحدد في مكتبة Pythonre. في هذا البرنامج النصي ، يتطابق الرمز . أيضًا مع السطر الجديد.

الوسيطة الثالثة ، file_pattern ، اختيارية. هذا هو تعبير منتظم آخر يعمل على اسم ملف. سيتم النظر فقط في تلك الملفات التي تطابق هذا التعبير العادي.

على سبيل المثال ، إذا أردت البحث في ملفات Python بالملحق py الذي يحتوي على Pool( متبوعًا بـ Word Adaptor ، فأفعل ما يلي ،

./sniff.py . "Pool(.*?Adaptor"  .*py
./Demos/snippets/cubeMeshSigNeur.py:146 
./Demos/snippets/testSigNeur.py:259 
./python/moose/multiscale/core/mumbl.py:206 
./Demos/snippets/multiComptSigNeur.py:268 

وفويلا ، يقوم بإنشاء مسار الملفات المطابقة ورقم السطر الذي تم العثور على المطابقة فيه. إذا تم العثور على أكثر من تطابق ، فسيتم إلحاق كل رقم سطر في اسم الملف.

13
Dilawar

استعمال:

grep -c Your_Pattern *

سيقوم هذا بالإبلاغ عن عدد نسخ النموذج الموجودة لديك في كل ملف من الملفات الموجودة في الدليل الحالي.

12
Dr_Hope

grep هو صديقك الحميم لتحقيق ذلك.

grep -r <text_fo_find> <directory>

إذا كنت لا تهتم لحالة النص للعثور ثم استخدام

grep -ir <text_to_find> <directory>
11
Prash

جميع الإجابات السابقة تشير إلى grep والعثور عليها. ولكن هناك طريقة أخرى: استخدام قائد منتصف الليل

إنها أداة مساعدة مجانية (عمرها 30 عامًا ، تم إثباتها بمرور الوقت) وهي مرئية دون أن تكون واجهة المستخدم الرسومية. لديها الكثير من الوظائف ، وإيجاد الملفات هو واحد منهم فقط.

11
Peter M.

للبحث عن السلسلة وإخراج ذلك السطر بسلسلة البحث فقط:

for i in $(find /path/of/target/directory -type f); do grep -i "the string to look for" "$i"; done

على سبيل المثال:

for i in $(find /usr/share/applications -type f); \
do grep -i "web browser" "$i"; done

لعرض اسم الملف الذي يحتوي على سلسلة البحث:

for i in $(find /path/of/target/directory -type f); do if grep -i "the string to look for" "$i" > /dev/null; then echo "$i"; fi; done;

على سبيل المثال:

for i in $(find /usr/share/applications -type f); \
do if grep -i "web browser" "$i" > /dev/null; then echo "$i"; \
fi; done;
11
user3124504

هناك أداة ack يمكنها أن تفعل بالضبط ما تبحث عنه.

http://linux.die.net/man/1/ack

ack -i search_string folder_path/*

قد تتجاهل -i للبحث عن حالة حساسة

11
Pal

سوف يعمل الأمر أدناه جيدًا لهذا النهج:

find ./ -name "file_pattern_name"  -exec grep -r "pattern" {} \;
10
Pradeep Goswami

جرب هذا:

find . | xargs grep 'Word' -sl
10
Tayab Hussain

أنا مفتون بمدى السهولة التي يجعلها grep مع 'rl'

grep -rl 'pattern_to_find' /path/where/to/find

-r to find recursively file / directory inside directories..
-l to list files matching the 'pattern'

استخدم "-r" بدون "l" لرؤية أسماء الملفات متبوعة بـ نص تم العثور على النموذج !

grep -r 'pattern_to_find' /path/where/to/find

يعمل الكمال فقط ..

آمل أن يساعد!

10
nitinr708

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

grep -e TEXT *.log | cut -d' ' --complement -s -f1

يعد خيار grep with -e سريعًا جدًا مقارنة بالخيار الآخر كما هو الحال في مطابقة PATTERN

10
Mitul Patel

تجنب المتاعب وتثبيت ack-grep. أنه يلغي الكثير من الإذن ومشاكل الاقتباس.

apt-get install ack-grep

ثم انتقل إلى الدليل الذي تريد البحث عنه وتشغيل الأمر أدناه

cd /
ack-grep "find my keyword"
10
Kareem

يُفضل find مع xargs عندما يكون هناك العديد من التطابقات المحتملة للتصفح. يعمل ببطء أكثر من الخيارات الأخرى ، لكنه يعمل دائمًا. كما اكتشف البعض ، xargs لا يتعامل مع الملفات ذات المساحات المدمجة بشكل افتراضي. يمكنك التغلب على هذا عن طريق تحديد الخيار -d.

فيما يلي إجابة @ RobEarl ، محسّنة بحيث تتعامل مع الملفات ذات المسافات:

find / -type f | xargs -d '\n' grep 'text-to-find-here'

فيما يلي إجابة venkat @ ، والتي تم تحسينها بالمثل:

find . -name "*.txt" | xargs -d '\n' grep -i "text_pattern"

في ما يلي إجابةGert van Biljon ، تم تعزيزها بالمثل:

find . -type f -name "*.*" -print0 | xargs -d '\n' --null grep --with-filename --line-number --no-messages --color --ignore-case "searthtext"

هنا إجابة @ LetalProgrammer ، المحسنة بالمثل:

alias ffind find / -type f | xargs -d '\n' grep

في ما يلي إجابة Tayab Hussain ، تم تحسينها بالمثل:

find . | xargs -d '\n' grep 'Word' -sl
7
Mike Slinn

إذا كان لديك مجموعة من الملفات التي ستقوم بالتحقق منها دائمًا ، فيمكنك الاسم المستعار لمساراتها ، على سبيل المثال:

alias fd='find . -type f -regex ".*\.\(inc\|info\|module\|php\|test\|install\|uninstall\)"'

ثم يمكنك ببساطة تصفية القائمة مثل هذا:

grep -U -l $'\015' $(fd)

الذي تصفية القائمة fd إلى الملفات التي تحتوي على نمط CR.

أجد أن التعرجات في الملفات التي أهتم بها تساعدني في إنشاء نصوص أسهل ، ثم أحاول دائمًا تذكر كيفية الحصول على كل هذه الملفات. تعمل الأشياء العودية أيضًا ولكن عاجلاً أم آجلاً ، سيتعين عليك التعامل مع أنواع الملفات المحددة. وهذا هو السبب في أنني فقط أجد كل أنواع الملفات التي أرغب في البدء بها.

7
dkinzer

إذا كنت تريد استخدام find بصرامة ، فقم بما يلي:

find /path/to/somewhere/ -type f -exec grep -nw 'textPattern' {} \;

find + grep

1. استخدام find للبحث في الملفات ، 2. ثم تنفيذ grep عليها جميعًا.

يمكن دمجها في أمر واحد على النحو التالي:

find /path/to/somewhere/ -type f -exec grep -nw 'textPattern' {} \;

  • استخدم -name Pattern إذا كنت تريد grep فقط بعض الملفات:

    find /path/to/somewhere/ -type f -name \*.cpp -exec grep -nw 'textPattern' {} \;

هذا يمكن أن يوفر لك قوة find للعثور على الملفات. يمكنك اللعب معها واستخدام خيارات مختلفة من find لتحسين البحث عن الملفات أو تضييقه.

7
BreakBadSP

جرب هذا:

find / -type f -name "*" -exec grep -il "String_to_search" {} \;

أو

for i in /*;do grep -Ril "String_to_search" $i;done 2> /dev/null
7
VIPIN KUMAR

استعمال:

grep -Erni + "text you wanna search"

سيبحث الأمر بشكل متكرر في جميع الملفات والدلائل الموجودة في الدليل الحالي ويطبع النتيجة.

ملاحظة: إذا لم يكن ناتج grep ملونًا ، فيمكنك تغييره باستخدام الاسم المستعار grep = 'grep --color = دائمًا' في ملف مصدر Shell.

7
baldash

يمكنك استخدام الأوامر التالية للعثور على نص معين من ملف:

cat file | grep 'abc' | cut -d':' -f2
7
iamjayp

كما بيتر في الإجابة السابقة المذكورة ، كل الإجابات السابقة تشير إلى grep والعثور عليها.

ولكن هناك طريقة أكثر تطوراً في استخدام Gnome Commander مع_ واجهة المستخدم الرسوميةمع وجود الكثير من الخيارات منذ عام 2001 ، وإيجاد الملفات هو واحد منهم فقط. إنها أداة مجانية أيضًا ، أثبتت بمرور الوقت.

7
Geeocode

جرب هذا

find . -type f -name some_file_name.xml -exec grep -H PUT_YOUR_STRING_HERE {} \;
6
Sireesh Yarlagadda

GUI Search Alternative - لاستخدام سطح المكتب:

- لأن السؤال لا يطالب بالتحديد بالأوامر

Searchmonkey : أداة متقدمة للبحث عن الملفات دون الحاجة إلى فهرسة النظام الخاص بك باستخدام التعبيرات العادية. مكافئ رسومي لإيجاد/grep. متاح لنظام التشغيل Linux (Gnome/KDE/Java) و Windows (Java) - المصدر المفتوح GPL v3

الميزات:

  • التعبيرات العادية المتقدمة
  • النتائج تظهر في السياق
  • بحث يحتوي على النص
  • لوحة لعرض سطر يحتوي على نص
  • 2018 التحديثات الجديدة
  • إلخ.

تنزيل - روابط:

.

لقطة شاشة:

 Enter image description here

5
intika

الأمر الخاص بك هو الصحيح. فقط تحتاج إلى إضافة -L إلى grep.

find / -type f -exec grep -l 'text-to-find-here' {} \;
0
FariZ