الشرح 643 : تعريب و تغيير لغة تطبيقات الأندرويد دون تغيير لغة الهاتف
جدول المحتويات:
- بناء الجملة أمر القيادة
- كيفية استخدام
grepللبحث عن سلسلة في الملفات - عكس المباراة (استبعاد)
- كيفية استخدام Grep للبحث عن سلسلة في إخراج الأوامر
- بحث متكرر
- عرض فقط اسم الملف
- حالة البحث غير حساس
- البحث عن الكلمات الكاملة
- إظهار أرقام الخطوط
- عدد المباريات
- البحث عن سلاسل متعددة (أنماط)
- الوضع الهادئ
- التعبير العادي الأساسي
- التعبيرات العادية الموسعة
- خطوط الطباعة قبل المباراة
- خطوط الطباعة بعد المباراة
- استنتاج
يعد الأمر
grep
الذي يشير إلى "طباعة التعبير العادية العالمية" واحدًا من أقوى الأوامر الشائعة الاستخدام في نظام Linux.
يبحث Grep في ملف إدخال واحد أو أكثر عن الخطوط التي تتطابق مع نمط معين وتكتب كل سطر مطابق للإخراج القياسي. إذا لم يتم تحديد أي ملفات ، فإن
grep
يقرأ من المدخلات القياسية ، والتي عادة ما تكون ناتجة عن أمر آخر.
في هذا البرنامج التعليمي ، سوف نوضح لك كيفية استخدام أمر
grep
خلال أمثلة عملية ، وشروحات مفصلة لخيارات GNU
grep
الأكثر شيوعًا.
بناء الجملة أمر القيادة
قبل الدخول في كيفية استخدام أمر
grep
، دعنا نبدأ بمراجعة بناء الجملة الأساسي.
تأخذ تعبيرات الأداة المساعدة
grep
بالشكل التالي:
grep PATTERN
العناصر الموجودة بين قوسين مربعين اختيارية.
-
OPTIONS- صفر أو أكثر من الخيارات. يوفر Grep عددًا من الخيارات التي تتحكم في سلوكها.PATTERN- نمط البحث.FILE- صفر أو أكثر من أسماء ملفات الإدخال.
لتكون قادرًا على البحث في الملف ، يجب أن يكون لدى المستخدم الذي يقوم بتشغيل الأمر حق الوصول للقراءة إلى الملف.
كيفية استخدام
grep
للبحث عن سلسلة في الملفات
الاستخدام الأساسي لأمر
grep
هو البحث عن سلسلة (نص) في ملف.
على سبيل المثال ، لعرض الأسطر من ملف
/etc/passwd
يحتوي على
bash
السلسلة ، يمكنك استخدام الأمر التالي:
grep bash /etc/passwd
يجب أن يبدو الإخراج بشيء من هذا القبيل:
root:x:0:0:root:/root:/bin/bash linuxize:x:1000:1000:linuxize:/home/linuxize:/bin/bash
إذا كانت السلسلة تحتوي على مسافات ، فأنت بحاجة إلى تضمينها بعلامات اقتباس مفردة أو مزدوجة:
grep "Gnome Display Manager" /etc/passwd
عكس المباراة (استبعاد)
لعرض الخطوط التي لا تتطابق مع نقش ، استخدم الخيار
-v
(أو
--invert-match
).
على سبيل المثال لعرض الأسطر من ملف
/etc/passwd
التي لا تحتوي على السلسلة
nologin
يمكنك استخدام الأمر التالي:
grep -v nologin /etc/passwd
root:x:0:0:root:/root:/bin/bash colord:x:124:124::/var/lib/colord:/bin/false git:x:994:994:git daemon user:/:/usr/bin/git-shell linuxize:x:1000:1000:linuxize:/home/linuxize:/bin/bash
كيفية استخدام Grep للبحث عن سلسلة في إخراج الأوامر
بدلاً من تحديد ملفات الإدخال ، يمكنك توجيه إخراج أمر آخر إلى
grep
، ثم عرض الأسطر المطابقة لنمط معين فقط.
على سبيل المثال ، لمعرفة العمليات التي تعمل على نظامك كمستخدم
www-data
يمكنك استخدام الأمر
ps
التالي:
ps -ef | grep www-data
www-data 18247 12675 4 16:00 ? 00:00:00 php-fpm: pool www root 18272 17714 0 16:00 pts/0 00:00:00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn www-data www-data 31147 12770 0 Oct22 ? 00:05:51 nginx: worker process www-data 31148 12770 0 Oct22 ? 00:00:00 nginx: cache manager process
يمكنك أيضا سلسلة أنابيب متعددة في القيادة. كما ترون في الإخراج أعلاه ، يوجد أيضًا خط يحتوي على عملية
grep
. إذا كنت لا تريد أن يظهر هذا الخط ، فقم بتمرير الإخراج إلى مثيل
grep
آخر كما هو موضح أدناه.
ps -ef | grep www-data | grep -v grep
www-data 18247 12675 4 16:00 ? 00:00:00 php-fpm: pool www root 18272 17714 0 16:00 pts/0 00:00:00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn www-data www-data 31147 12770 0 Oct22 ? 00:05:51 nginx: worker process www-data 31148 12770 0 Oct22 ? 00:00:00 nginx: cache manager process
بحث متكرر
للبحث بشكل متكرر عن نمط ، استخدم الخيار
-r
(أو -
--recursive
). سيقوم هذا بالبحث من خلال جميع الملفات في الدليل المحدد ، وتخطي الروابط التي تتم مواجهتها بشكل متكرر. لمتابعة جميع الروابط الرمزية ، استخدم الخيار
-R
(أو
--dereference-recursive
).
في المثال التالي ، نبحث عن السلسلة
linuxize.com
في جميع الملفات داخل الدليل
/etc
:
grep -r linuxize.com /etc
سيقوم الأمر بطباعة الخطوط المطابقة مسبوقة بالمسار الكامل للملف.
/etc/hosts:127.0.0.1 node2.linuxize.com /etc/nginx/sites-available/linuxize.com: server_name linuxize.com www.linuxize.com;
إذا بدلاً من ذلك -
-r
ستستخدم
-R
-r
الخيار
-R
يتبع جميع الروابط الرمزية:
grep -R linuxize.com /etc
لاحظ السطر الأخير من الإخراج. لا يتم طباعة هذا السطر في المثال أعلاه لأن الملفات الموجودة داخل دليل
sites-enabled
في Nginx هي روابط إلى ملفات التكوين داخل الدليل
sites-available
.
/etc/hosts:127.0.0.1 node2.linuxize.com /etc/nginx/sites-available/linuxize.com: server_name linuxize.com www.linuxize.com; /etc/nginx/sites-enabled/linuxize.com: server_name linuxize.com www.linuxize.com;
عرض فقط اسم الملف
لمنع إخراج
grep
الافتراضي وطباعة أسماء الملفات التي تحتوي على النموذج المطابق فقط ، يمكنك استخدام الخيار
-l
(أو
--files-with-matches
).
على سبيل المثال للبحث من خلال جميع الملفات التي تنتهي بـ
.conf
في دليل العمل الحالي وطباعة أسماء الملفات التي تحتوي على سلسلة
linuxize.com
:
grep -l linuxize.com *.conf
سيظهر الإخراج بشيء من هذا القبيل:
tmux.conf haproxy.conf
عادةً ما يتم استخدام الخيار
-l
مع الخيار العودية
-R
:
حالة البحث غير حساس
افتراضيًا ، يكون الأمر
grep
حساسًا لحالة الأحرف. هذا يعني أنه يتم التعامل مع الأحرف الكبيرة والصغيرة على أنها مميزة.
لتجاهل الحالة عند البحث ، استخدم الخيار
-i
(أو
--ignore-case
).
على سبيل المثال ، عند البحث عن
Zebra
دون أي خيار ، لن يُظهر الأمر التالي أي مخرجات ، أي هناك خطوط مطابقة:
grep Zebra /usr/share/words
ولكن إذا قمت بإجراء بحث غير متحسس لحالة الأحرف باستخدام الخيار
-i
، فسوف يتطابق مع كل من الأحرف الكبيرة والصغيرة:
grep -i Zebra /usr/share/words
سيؤدي تحديد "Zebra" إلى مطابقة "zebra" أو "ZEbrA" أو أي مجموعة أخرى من الأحرف الكبيرة والصغيرة لهذه السلسلة.
البحث عن الكلمات الكاملة
عند البحث عن "gnu" ، ستطبع
grep
أيضًا الأسطر التي يكون فيها "gnu" مضمنًا بكلمات أكبر ، مثل "cygnus" أو "magnum".
grep gnu /usr/share/words
cygnus gnu interregnum lgnu9d lignum magnum magnuson sphagnum wingnut
لإرجاع تلك السطور فقط حيث تكون السلسلة المحددة كلمة كاملة (محاطة بأحرف غير كلمة) ، استخدم الخيار
-w
(أو
--word-regexp
).
az
،
AZ
و
0-9
)
0-9
سفلية (
_
). تعتبر جميع الشخصيات الأخرى أحرفًا غير كلمة.
grep -w gnu /usr/share/words
إظهار أرقام الخطوط
لإظهار عدد الخطوط التي تحتوي على سلسلة تتطابق مع نقش ، استخدم الخيار
-n
(أو
--line-number
). عند استخدام هذا الخيار ، ستقوم
grep
بطباعة المطابقات على الإخراج القياسي مسبوقًا برقم السطر الذي تم العثور عليه عليه.
على سبيل المثال ، لعرض الأسطر من ملف
/etc/services
يحتوي على
bash
سلسلة مسبوقة برقم سطر المطابقة ، يمكنك استخدام الأمر التالي:
grep -n 10000 /etc/services
يوضح لنا الناتج الموجود أدناه أن التطابقات موجودة على الخطين 10423 و 10424.
10423:ndmp 10000/tcp 10424:ndmp 10000/udp
عدد المباريات
لطباعة عدد من الخطوط المتطابقة مع الإخراج القياسي ، استخدم الخيار
-c
(أو -
--count
).
في المثال أدناه ، نحسب عدد الحسابات التي لديها
/usr/bin/zsh
كقذيفة.
grep -c '/usr/bin/zsh' /etc/passwd
البحث عن سلاسل متعددة (أنماط)
يمكن ضم نمطين أو أكثر من أنماط البحث باستخدام عامل التشغيل OR
|
.
بشكل افتراضي ، يفسر
grep
النمط كتعبير عادي أساسي حيث الأحرف الوصفية مثل
|
تفقد معناها الخاص ، ويجب استخدام الإصدارات المائلة للخلف.
في المثال أدناه ، نحن نبحث في كل تكرارات الكلمات
fatal
والخطيرة
critical
في ملف خطأ سجل Nginx:
grep 'fatal\|error\|critical' /var/log/nginx/error.log
grep -E 'fatal|error|critical' /var/log/nginx/error.log
الوضع الهادئ
يخبر
--quiet
-q
(أو -
--quiet
)
grep
بعدم كتابة أي شيء إلى المحطة الطرفية (الإخراج القياسي). إذا تم العثور على تطابق ، فسيخرج الأمر بالحالة
0
. يعد هذا مفيدًا عند استخدام
grep
في البرامج النصية shell حيث تريد التحقق مما إذا كان الملف يحتوي على سلسلة وتنفيذ إجراء معين اعتمادًا على النتيجة.
فيما يلي مثال لاستخدام
grep
في وضع هادئ كأمر اختبار في عبارة
if
:
if grep -q PATTERN filename then echo pattern found else echo pattern not found fi
التعبير العادي الأساسي
يحتوي GNU Grep على مجموعتين من ميزات التعبير العادي ، Basic و Extended. بشكل افتراضي ، يفسر
grep
النمط كتعبير عادي أساسي.
عند استخدامها في وضع التعبير العادي الأساسي ، فإن جميع الأحرف الأخرى ما عدا الأحرف الوصفية ، هي في الواقع تعبيرات عادية تتطابق مع نفسها. فيما يلي قائمة بأحرف التعريف الأكثر شيوعًا:
-
استخدم الرمز
^(علامة الإقحام) لمطابقة التعبير في بداية السطر. في المثال التالي ، لن تتطابق السلسلة^kangarooإلا في حالة حدوثها في بداية السطر.grep "^kangaroo" file.txtاستخدم الرمز
$(دولار) لمطابقة التعبير في نهاية السطر. في المثال التالي ، لن تتطابق سلسلةkangaroo$إلا في حالة حدوثها في نهاية السطر.grep "kangaroo$" file.txtاستخدم (فترة) رمز لمطابقة أي حرف واحد. على سبيل المثال ، لمطابقة أي شيء يبدأ بـ
kanثمkanمن حرفين وينتهي بسلسلةroo، يمكنك استخدام النموذج التالي:grep "kan..roo" file.txtاستعمال
(الأقواس) لمطابقة أي حرف مفرد محاط بالأقواس. على سبيل المثال ، ابحث عن الخطوط التي تحتوي علىacceptأو "accent" ، يمكنك استخدام النموذج التالي:grep "accet" file.txtاستعمال
(الأقواس) لمطابقة أي حرف مفرد محاط بالأقواس.co(any_letter_except_l)aالنموذج التالي مع أي مجموعة من السلاسل التي تحتوي علىco(any_letter_except_l)a، مثلcocacobaltوما إلى ذلك ، ولكنها لن تتطابق مع الخطوط التي تحتوي علىcola،grep "coa" file.txt
للهروب من المعنى الخاص للحرف التالي ، استخدم الرمز
\
(الخط المائل العكسي).
التعبيرات العادية الموسعة
لتفسير النموذج كتعبير منتظم موسع ، استخدم الخيار
-E
(أو
--extended-regexp
). تتضمن التعبيرات العادية الموسعة جميع أحرف التعريف الأساسية ، إلى جانب أحرف التعريف الإضافية لإنشاء أنماط بحث أكثر تعقيدًا وقوة. فيما يلي بعض الأمثلة:
-
مطابقة واستخراج جميع عناوين البريد الإلكتروني من ملف معين:
grep -E -o "\b+@+\.{2, 6}\b" file.txtمطابقة واستخراج جميع عناوين IP الصالحة من ملف معين:
grep -E -o '(25|2|??)\.(25|2|??)\.(25|2|??)\.(25|2|??)' file.txt
يتم استخدام الخيار
-o
لطباعة السلسلة المطابقة فقط.
خطوط الطباعة قبل المباراة
لطباعة عدد محدد من الأسطر قبل مطابقة الأسطر ، استخدم الخيار
-B
(أو
--before-context
).
على سبيل المثال ، لعرض خمسة أسطر من السياق الأولي قبل مطابقة الخطوط ، يمكنك استخدام الأمر التالي:
خطوط الطباعة بعد المباراة
لطباعة عدد محدد من الأسطر بعد مطابقة الأسطر ، استخدم الخيار
-A
(أو
--after-context
).
على سبيل المثال ، لعرض خمسة أسطر لسياق خلفي بعد مطابقة الخطوط ، يمكنك استخدام الأمر التالي:
استنتاج
يتيح لك الأمر
grep
البحث عن نمط داخل الملفات. إذا تم العثور على تطابق ، فسوف يقوم grep بطباعة الخطوط التي تحتوي على النموذج المحدد.
هناك الكثير لمعرفة المزيد عن Grep في صفحة دليل مستخدم Grep.
محطة grepكيفية تشغيل نظام التشغيل chrome في نظام التشغيل windows 8 (أو نظام التشغيل windows 8.1) - توجيه التكنولوجيا
إليك كيفية الحصول على تجربة تشبه Chromebook في نظام التشغيل Windows 8 أو 8.1 من خلال تشغيل نظام التشغيل Chrome.
أمر Chmod في نظام التشغيل Linux (أذونات الملفات)
في Linux ، تتم إدارة الوصول إلى الملفات من خلال أذونات الملف وسماته وملكيته. يغطي هذا البرنامج التعليمي كيفية استخدام الأمر chmod لتغيير أذونات الوصول إلى الملفات والدلائل.
أمر Cp في نظام التشغيل Linux (نسخ الملفات)
cp هي أداة مساعدة لسطر الأوامر لنسخ الملفات والدلائل على أنظمة Unix و Linux.







