استخدام Grep وتعابير العادات للبحث عن أنماط النص في لينكس

مقدمة

أمر الـgrep هو واحد من أكثر الأوامر فائدة في بيئة وحدة التحكم في لينكس. يعني اسم grep “طباعة التعبير العادي العالمي”. هذا يعني أنه يمكنك استخدام grep للتحقق مما إذا كان المدخل الذي يتلقاه مطابقًا لنمط محدد. هذا البرنامج الذي يبدو تافهًا بشكل واضح هو قوي للغاية؛ فقدرته على فرز المدخلات بناءً على قواعد معقدة تجعله رابطًا شائعًا في العديد من سلاسل الأوامر.

في هذا البرنامج التعليمي، ستكتشف خيارات أمر grep، ثم ستغوص في استخدام التعابير العادية للبحث عن مزيد من التقنيات المتقدمة.

المتطلبات المسبقة

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

إذا كنت تخطط لاستخدام خادم عن بعد لمتابعة هذا الدليل، فإننا نشجعك على إكمال دليلنا إعداد الخادم الأولي أولاً. سيوفر لك ذلك بيئة خادم آمنة — بما في ذلك مستخدم غير root بامتيازات sudo وجدار ناري مكون باستخدام UFW — يمكنك استخدامها لبناء مهاراتك في نظام Linux.

الاستخدام الأساسي

في هذا البرنامج التعليمي، ستستخدم grep للبحث في رخصة جنو العمومية الإصدار 3 عن مختلف الكلمات والعبارات.

إذا كنت على نظام Ubuntu، يمكنك العثور على الملف في مجلد /usr/share/common-licenses. انسخه إلى مجلدك الرئيسي:

  1. cp /usr/share/common-licenses/GPL-3 .

إذا كنت على نظام آخر، استخدم الأمر curl لتنزيل نسخة:

  1. curl -o GPL-3 https://www.gnu.org/licenses/gpl-3.0.txt

ستستخدم أيضًا ملف ترخيص BSD في هذا البرنامج التعليمي. في Linux، يمكنك نسخه إلى مجلدك الرئيسي باستخدام الأمر التالي:

  1. cp /usr/share/common-licenses/BSD .

إذا كنت على نظام آخر، قم بإنشاء الملف باستخدام الأمر التالي:

  1. cat << 'EOF' > BSD
  2. Copyright (c) The Regents of the University of California.
  3. All rights reserved.
  4. Redistribution and use in source and binary forms, with or without
  5. modification, are permitted provided that the following conditions
  6. are met:
  7. 1. Redistributions of source code must retain the above copyright
  8. notice, this list of conditions and the following disclaimer.
  9. 2. Redistributions in binary form must reproduce the above copyright
  10. notice, this list of conditions and the following disclaimer in the
  11. documentation and/or other materials provided with the distribution.
  12. 3. Neither the name of the University nor the names of its contributors
  13. may be used to endorse or promote products derived from this software
  14. without specific prior written permission.
  15. THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  16. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  17. IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  18. ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  19. FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  20. DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  21. OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  22. HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  23. LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  24. OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  25. SUCH DAMAGE.
  26. EOF

الآن بعد أن لديك الملفات، يمكنك البدء في العمل مع grep.

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

قم بتنفيذ الأمر التالي لاستخدام الأمر grep للبحث عن كل سطر يحتوي على كلمة GNU:

  1. grep "GNU" GPL-3

المعامل الأول، GNU، هو النمط الذي تبحث عنه، في حين أن المعامل الثاني، GPL-3، هو الملف الذي ترغب في البحث عنه.

سيكون الناتج هو كل سطر يحتوي على نص النمط:

Output
GNU GENERAL PUBLIC LICENSE The GNU General Public License is a free, copyleft license for the GNU General Public License is intended to guarantee your freedom to GNU General Public License for most of our software; it applies also to Developers that use the GNU GPL protect your rights with two steps: "This License" refers to version 3 of the GNU General Public License. 13. Use with the GNU Affero General Public License. under version 3 of the GNU Affero General Public License into a single ... ...

على بعض الأنظمة، سيتم تحديد النمط الذي بحثت عنه في الناتج.

الخيارات الشائعة

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

إذا كنت ترغب في أن يتجاهل grep “حالة” معلمة البحث الخاصة بك والبحث عن الإصدارات الكبيرة والصغيرة، يمكنك تحديد الخيار -i أو --ignore-case.

ابحث عن كل حالة من كلمة license (مع الأحرف الكبيرة، الصغيرة، أو المختلطة) في نفس الملف كما هو موضح في الأمر التالي:

  1. grep -i "license" GPL-3

النتائج تحتوي: LICENSE، license، و License:

Output
GNU GENERAL PUBLIC LICENSE of this license document, but changing it is not allowed. The GNU General Public License is a free, copyleft license for The licenses for most software and other practical works are designed the GNU General Public License is intended to guarantee your freedom to GNU General Public License for most of our software; it applies also to price. Our General Public Licenses are designed to make sure that you (1) assert copyright on the software, and (2) offer you this License "This License" refers to version 3 of the GNU General Public License. "The Program" refers to any copyrightable work licensed under this ... ...

إذا كان هناك حالة مع LiCeNsE، فسيتم إرجاعها أيضًا.

إذا كنت تريد العثور على جميع الأسطر التي لا تحتوي على نمط محدد، يمكنك استخدام الخيار -v أو --invert-match.

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

  1. grep -v "the" BSD

سوف تتلقى هذا الإخراج:

Output
All rights reserved. Redistribution and use in source and binary forms, with or without are met: may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ... ...

نظرًا لعدم تحديد خيار “تجاهل الحالة”، تم إرجاع العنصرين الأخيرين كعدم احتوائهما على كلمة the.

غالبًا ما يكون من المفيد معرفة رقم السطر الذي يحدث فيه التطابق. يمكنك القيام بذلك باستخدام الخيار -n أو --line-number. أعد تشغيل المثال السابق مع إضافة هذا العلم:

  1. grep -vn "the" BSD

سيُرجع هذا النص:

Output
2:All rights reserved. 3: 4:Redistribution and use in source and binary forms, with or without 6:are met: 13: may be used to endorse or promote products derived from this software 14: without specific prior written permission. 15: 16:THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 17:ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ... ...

الآن يمكنك الإشارة إلى رقم السطر إذا كنت تريد إجراء تغييرات على كل سطر لا يحتوي على the. هذا مفيد بشكل خاص عند العمل مع الشفرة المصدرية.

تعابير العادية

في المقدمة، تعلمت أن grep تعني “طباعة التعبير العادي العالمي”. “تعبير عادي” هو سلسلة نصية تصف نمط بحث معين.

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

التطابقات الحرفية

في الأمثلة السابقة في هذا البرنامج التعليمي، عندما بحثت عن الكلمات GNU و the، كنت في الواقع تبحث عن تعبيرات عادية أساسية تتطابق مع سلسلة الأحرف المحددة بالضبط GNU و the. الأنماط التي تحدد بالضبط الأحرف المطابقة تسمى “الحرفيات” لأنها تطابق النمط بشكل حرفي، حرفًا بحرف.

من المفيد التفكير في هذه كمطابقة سلسلة من الأحرف بدلاً من مطابقة كلمة. ستصبح هذه التمييز أكثر أهمية كلما تعلمت أنماطًا أكثر تعقيدًا.

جميع الأحرف الأبجدية والرقمية (وكذلك بعض الأحرف الأخرى) يتم مطابقتها بشكل حرفي ما لم يتم تعديلها بواسطة آليات تعبير أخرى.

التطابقات الأنكورية

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

على سبيل المثال، باستخدام الأنكورات، يمكنك تحديد أنك ترغب فقط في معرفة الأسطر التي تتطابق مع GNU في بداية السطر. للقيام بذلك، يمكنك استخدام الأنكور ^ قبل السلسلة الحرفية.

قم بتشغيل الأمر التالي للبحث في ملف GPL-3 والعثور على الأسطر التي تحتوي على كلمة GNU في بداية السطر:

  1. grep "^GNU" GPL-3

سيعيد هذا الأمر السطرين التاليين:

Output
GNU General Public License for most of our software; it applies also to GNU General Public License, you may choose any version ever published

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

سيطابق هذا الأمر كل سطر ينتهي بكلمة and في ملف GPL-3:

  1. grep "and$" GPL-3

ستتلقى هذه النتيجة:

Output
that there is no warranty for this free software. For both users' and The precise terms and conditions for copying, distribution and License. Each licensee is addressed as "you". "Licensees" and receive it, in any medium, provided that you conspicuously and alternative is allowed only occasionally and noncommercially, and network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and provisionally, unless and until the copyright holder explicitly and receives a license from the original licensors, to run, modify and make, use, sell, offer for sale, import and otherwise run, modify and

مطابقة أي حرف

يتم استخدام النقطة (.) في التعبيرات العادية للدلالة على أن أي حرف واحد يمكن أن يكون موجودًا في الموقع المحدد.

على سبيل المثال، للمطابقة مع أي شيء في ملف GPL-3 يحتوي على حرفين ثم سلسلة cept، يجب استخدام النمط التالي:

  1. grep "..cept" GPL-3

سيعيد هذا الأمر الناتج التالي:

Output
use, which is precisely where it is most unacceptable. Therefore, we infringement under applicable copyright law, except executing it on a tells the user that there is no warranty for the work (except to the License by making exceptions from one or more of its conditions. form of a separately written license, or stated as exceptions; You may not propagate or modify a covered work except as expressly 9. Acceptance Not Required for Having Copies. ... ...

تحتوي هذه النتيجة على حالات لكل من accept و except واختلافات الكلمتين. كما سيكون قد تطابق النمط مع z2cept إذا وُجِدَ ذلك أيضًا.

تعبيرات القوس

من خلال وضع مجموعة من الحروف داخل الأقواس (\[ و \])، يمكنك تحديد أن الحرف في تلك الموضع يمكن أن يكون أي حرف يتواجد ضمن مجموعة الأقواس.

على سبيل المثال، للعثور على الأسطر التي تحتوي على too أو two، يمكنك تحديد تلك الاختلافات بإيجاز باستخدام النمط التالي:

  1. grep "t[wo]o" GPL-3

الناتج يُظهر وجود كلتا الاختلافات في الملف:

Output
your programs, too. freedoms that you received. You must make sure that they, too, receive Developers that use the GNU GPL protect your rights with two steps: a computer network, with no transfer of a copy, is not conveying. System Libraries, or general-purpose tools or generally available free Corresponding Source from a network server at no charge. ... ...

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

هذا المثال مشابه لنمط .ode، لكنه لن يتطابق مع النمط code:

  1. grep "[^c]ode" GPL-3

إليك الناتج الذي ستحصل عليه:

Output
1. Source Code. model, to give anyone who possesses the object code either (1) a the only significant mode of use of the product. notice like this when it starts in an interactive mode:

لاحظ أنه في السطر الثاني الذي تم إرجاعه، يوجد فعلاً كلمة code. هذا ليس فشلاً في التعبير العادي أو في برنامج البحث عن النمط. بل تم إرجاع السطر لأنه في وقت سابق من السطر، تم العثور على النمط mode، الموجود ضمن كلمة model. تم إرجاع السطر لأنه كان هناك نسخة تطابقت مع النمط.

ميزة أخرى مفيدة لعلامات الأقواس هي أنه يمكنك تحديد نطاق من الحروف بدلاً من كتابة كل حرف متاح بشكل فردي.

هذا يعني أنه إذا كنت تريد العثور على كل سطر يبدأ بحرف كبير، يمكنك استخدام النمط التالي:

  1. grep "^[A-Z]" GPL-3

إليك الناتج الذي يعيد هذا التعبير:

Output
GNU General Public License for most of our software; it applies also to States should not allow patents to restrict development and use of License. Each licensee is addressed as "you". "Licensees" and Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an System Libraries, or general-purpose tools or generally available free Source. User Product is transferred to the recipient in perpetuity or for a ... ...

نظرًا لبعض مشاكل الترتيب التقليدية، فمن المعتاد في كثير من الأحيان استخدام فئات الحروف POSIX بدلاً من نطاقات الحروف كما فعلت للتو.

مناقشة كل فئة حروف POSIX ستكون خارج نطاق هذا الدليل، ولكن مثال يحقق نفس الإجراء كما في المثال السابق يستخدم فئة الحروف \[:upper:\] داخل محدد الأقواس:

  1. grep "^[[:upper:]]" GPL-3

سيكون الإخراج هو نفسه كما كان من قبل.

كرر النمط صفر مرات أو أكثر

وأخيرًا، أحد أكثر الرموز التعبيرية استخدامًا هو علامة النجمة، أو *، التي تعني “كرر الحرف أو التعبير السابق صفر مرات أو أكثر”.

للعثور على كل سطر في ملف GPL-3 الذي يحتوي على فتح وإغلاق القوسين، مع حروف فقط وفراغات فردية بينهما، استخدم التعبير التالي:

  1. grep "([A-Za-z ]*)" GPL-3

ستحصل على الإخراج التالي:

Output
Copyright (C) 2007 Free Software Foundation, Inc. distribution (with or without modification), making available to the than the work as a whole, that (a) is included in the normal form of Component, and (b) serves only to enable use of the work with that (if any) on which the executable work runs, or a compiler used to (including a physical distribution medium), accompanied by the (including a physical distribution medium), accompanied by a place (gratis or for a charge), and offer equivalent access to the ... ...

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

تهرب الرموز التعبيرية

هناك أوقات عندما ستحتاج إلى البحث عن نقطة حرفية أو قوس افتتاحي حرفي، خاصة عند العمل مع ملفات الشفرة المصدرية أو ملفات التكوين. نظرًا لأن هذه الأحرف لها معنى خاص في التعبيرات العادية، فعليك “تهريب” هذه الأحرف لإخبار أداة grep بأنك لا ترغب في استخدام معناها الخاص في هذه الحالة.

تهرب من الأحرف باستخدام الشرطة العكسية (\) أمام الحرف الذي من المفترض أن يكون له معنى خاص.

على سبيل المثال، للعثور على أي سطر يبدأ بحرف كبير وينتهي بنقطة، استخدم التعبير التالي الذي يهرب من النقطة النهائية بحيث يمثل نقطة حرفية بدلاً من المعنى “أي حرف” العادي:

  1. grep "^[A-Z].*\.$" GPL-3

هذه هي النتيجة التي ستراها:

Output
Source. License by making exceptions from one or more of its conditions. License would be to refrain entirely from conveying the Program. ALL NECESSARY SERVICING, REPAIR OR CORRECTION. SUCH DAMAGES. Also add information on how to contact you by electronic and paper mail.

الآن دعنا نلقي نظرة على خيارات التعبير العادي الأخرى.

التعبيرات العادية الموسعة

تدعم أداة grep لغة تعبيرية عادية أكثر تعقيدًا باستخدام علامة -E أو باستدعاء أمر egrep بدلاً من grep.

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

التجميع

واحدة من أكثر القدرات المفيدة التي تفتحها التعبيرات العادية الموسعة القدرة على تجميع التعبيرات معًا لتلازمها أو الرجوع إليها كوحدة واحدة.

لتجميع التعبيرات معًا ، قم بوضعها داخل أقواس. إذا كنت ترغب في استخدام الأقواس دون استخدام التعبيرات العادية الموسعة ، يمكنك تهريبها باستخدام علامة الشرطة الخلفية لتمكين هذه الوظيفة. يعني هذا أن العبارات الثلاث التالية مكافئة وظيفيًا:

  1. grep "\(grouping\)" file.txt
  2. grep -E "(grouping)" file.txt
  3. egrep "(grouping)" file.txt

البديل

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

للإشارة إلى البديل ، استخدم رمز الخط العمودي |. غالبًا ما يتم استخدام هذه داخل التجميع بين الأقواس لتحديد أن واحدة من اثنين أو أكثر من الاحتمالات يجب أن تعتبر تطابقًا.

سيجد ما يلي إما GPL أو ترخيص الجمهور العام في النص:

  1. grep -E "(GPL|General Public License)" GPL-3

تبدو النتيجة مثل هذا:

Output
The GNU General Public License is a free, copyleft license for the GNU General Public License is intended to guarantee your freedom to GNU General Public License for most of our software; it applies also to price. Our General Public Licenses are designed to make sure that you Developers that use the GNU GPL protect your rights with two steps: For the developers' and authors' protection, the GPL clearly explains authors' sake, the GPL requires that modified versions be marked as have designed this version of the GPL to prohibit the practice for those ... ...

يمكن للبديل اختيار بين أكثر من اثنين من الخيارات عن طريق إضافة خيارات إضافية داخل مجموعة الاختيار مفصولة بواسطة رموز الخط العمودي الإضافية (|).

الكميات

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

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

يطابق ما يلي copyright و right بوضع copy في مجموعة اختيارية:

  1. grep -E "(copy)?right" GPL-3

ستحصل على هذه النتيجة:

Output
Copyright (C) 2007 Free Software Foundation, Inc. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License "Copyright" also means copyright-like laws that apply to other kinds of ...

الرمز + يتطابق مع تعبير مرة واحدة على الأقل. هذا تقريباً مثل الرمز الوصفي *، ولكن مع الرمز +، يجب أن يتطابق التعبير مرة واحدة على الأقل.

التعبير التالي يتطابق مع السلسلة free بالإضافة إلى حرف واحد أو أكثر ليسوا من الفراغات البيضاء:

  1. grep -E "free[^[:space:]]+" GPL-3

سترى هذه النتيجة:

Output
The GNU General Public License is a free, copyleft license for to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to When we speak of free software, we are referring to freedom, not have the freedom to distribute copies of free software (and charge for you modify it: responsibilities to respect the freedom of others. freedomss that you received. You must make sure that they, too, receive protecting users' freedom to change the software. The systematic of the GPL, as needed to protect the freedom of users. patents cannot be used to render the program non-free.

تحديد تكرار التطابق

لتحديد عدد مرات تكرار القالب، استخدم أحرف القوس المتعرج ({ و }). تتيح لك هذه الأحرف تحديد عدد دقيق، أو نطاق، أو حدًا أعلى أو أدنى لعدد المرات التي يمكن للتعبير أن يتطابق معها.

استخدم التعبير التالي للعثور على جميع الأسطر في ملف GPL-3 التي تحتوي على ثلاثة حروف متتالية:

  1. grep -E "[AEIOUaeiou]{3}" GPL-3

تعود كل سطر معاد إرجاعه إلى كلمة تحتوي على ثلاثة حروف متتالية:

Output
changed, so that their problems will not be attributed erroneously to authors of previous versions. receive it, in any medium, provided that you conspicuously and give under the previous paragraph, plus a right to possession of the covered work so as to satisfy simultaneously your obligations under this

لمطابقة أي كلمات تحتوي على ما بين 16 و 20 حرفًا، استخدم التعبير التالي:

  1. grep -E "[[:alpha:]]{16,20}" GPL-3

إليك إخراج هذا الأمر:

Output
certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. c) Prohibiting misrepresentation of the origin of that material, or

يتم عرض الأسطر فقط التي تحتوي على كلمات داخل تلك الطول.

الاستنتاج

grep مفيد في العثور على أنماط داخل الملفات أو داخل تسلسل النظام الملفاتي، لذا فمن الجدير بالوقت قضاء بعض الوقت للتعود على خياراته وبنية جمله.

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

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

Source:
https://www.digitalocean.com/community/tutorials/using-grep-regular-expressions-to-search-for-text-patterns-in-linux