في المقالة التالية سنرى بعض أدوات سطر الأوامر المستخدمة للعثور على سلاسل أو أنماط متطابقة داخل الملفات النصية. تُستخدم هذه الأدوات بشكل عام مع التعبيرات العادية ، والمختصرة كـ ريجكس، وهي سلاسل فريدة لوصف نمط البحث.
التعبيرات العادية هي أنماط مستخدمة للعثور على مجموعة معينة من الأحرف داخل سلسلة نصية. توفر التعبيرات العادية طريقة مرنة للغاية للبحث أو التعرف على السلاسل النصية. على الرغم من أننا لن نرى التعبيرات النمطية في الأسطر التالية ، إلا أننا سنستخدم الأنماط أو السلاسل النصية.
ابحث عن سلاسل أو أنماط من الجهاز
أمر Grep
Grep هو اختصار لـ طباعة التعبير العادي العام. هذه أداة سطر أوامر قوية مفيدة عند البحث عن سلسلة أو نمط معين في ملف. مع grep سنتمكن من استخدام مجموعة كبيرة من الوظائف ، مثل تلك التي شرحها لنا أحد الزملاء في هذه المدونة منذ فترة.
صيغة استخدام الأمر grep بسيطة جدًا:
grep PATRON [RUTA AL ARCHIVO]
على سبيل المثال ، للبحث عن السلسلة "أوبونتوفي ملف سنتصل به في هذا المثال text.txt، دون مراعاة التمييز بين الأحرف الكبيرة والصغيرة ، في المحطة الطرفية (Ctrl + Alt + T) سيتعين علينا فقط تنفيذ الأمر:
grep -i Ubuntu texto.txt
القيادة سيد
العطش قصير محرر البث. إنها أداة مفيدة أخرى للمحطة التي يمكننا من خلالها معالجة النص في ملف. يقوم Sed بالبحث عن السلاسل في ملف معين وتصفيتها واستبدالها.
يقوم الأمر sed بطباعة الإخراج بشكل افتراضي بتنسيق STDOUT (الإخراج القياسي). هذا يعني أن نتيجة التنفيذ تتم طباعتها على الجهاز بدلاً من حفظها في ملف.
يمكن استخدام الأمر Sed على النحو التالي:
sed -OPCIONES COMANDO [RUTA AL ARCHIVO]
على سبيل المثال ، لاستبدال جميع تكرارات "لينكس"في نص"جنولينكسسيكون الأمر المراد استخدامه كالتالي:
sed 's/Linux/GnuLinux/g' texto.txt
إذا كان ما نبحث عنه هو إعادة توجيه الإخراج إلى ملف بدلاً من طباعته إلى المحطة، سنستخدم علامة إعادة التوجيه على النحو التالي:
sed 's/Linux/GnuLinux/g' texto.txt > salida.txt
يتم حفظ إخراج الأمر في الملف الإخراج بدلاً من طباعتها على الشاشة.
لرؤية المزيد من الخيارات ، يمكنك ذلك استشر صفحات الرجل:
man sed
الكلية الاسترالية
Ack هي أداة سطر أوامر سريعة مكتوبة بلغة Perl. يعتبر بديلاً ودودًا لأداة grep، والتي تولد أيضًا نتائج بطريقة جذابة بصريًا.
إلى تثبيت ack في نظامنا ، سيتعين علينا التنفيذ في المحطة (Ctrl + Alt + T):
sudo apt install ack
القيادة يبحث Ack في الملف أو الدليل عن الأسطر التي تحتوي على مطابقة لمعايير البحث. ثم قم بتمييز السلسلة المقابلة. هذه الأداة لديها القدرة على تمييز الملفات بناءً على امتداداتهم.
سيكون بناء جملة الأمر Ack مشابهًا لما يلي
ack [OPCIONES] PATRÓN [RUTA AL ARCHIVO]
على سبيل المثال ، للبحث عن المصطلح لينكس في ملف ، سيتعين علينا تنفيذ:
ack Linux texto.txt
أداة البحث ذكية جدا و إذا كان المستخدم لا يوفر أي ملفات أو أدلة ، فإنه يبحث في الدليل الحالي والأدلة الفرعية لنمط البحث.
في المثال التالي ، لم يتم توفير أي ملف أو دليل. يكتشف Ack تلقائيًا الملف المتاح في الدليل ويبحث عن النمط المطابق:
ack Linux
ريبجريب
ريبجريب هي أداة مساعدة عبر الأنظمة الأساسية للبحث عن أنماط التعبير العادي. إنه أسرع من جميع أدوات البحث المذكورة أعلاه ، ويقوم بالبحث في الدلائل بشكل متكرر عن أنماط المطابقة. كما يسمح لك بالبحث عن أنواع ملفات معينة. بشكل افتراضي ، سيتخطى ripgrep الثنائيات والملفات / الدلائل المخفية.
إلى تثبيت ripgrep على النظام ، كل ما عليك فعله هو تشغيل الأمر التالي في المحطة (Ctrl + Alt + T):
sudo apt install ripgrep
صيغة استخدام ripgrep واضحة جدًا:
rg [OPCIONES] PATRÓN [RUTA AL ARCHIVO]
إذا أردنا البحث عن سلسلة "لينكسفي الملفات الموجودة داخل المجلد الحالي ، سيتعين علينا فقط تنفيذ الأمر:
rg Linux
لرؤية المزيد من الخيارات ، يمكن للمستخدمين استخدام صفحات الرجل:
man rg
الباحث الفضي
إلى قم بتثبيت هذه الأداةفي Ubuntu ، سيتعين علينا فقط فتح Terminal (Ctrl + Alt + T) وكتابة الأمر:
sudo apt install silversearcher-ag
Silver Searcher عبارة عن أداة بحث مفتوحة المصدر مشتركة بين الأنظمة الأساسية تشبه ack ولكن مع التركيز على السرعة. يجعل من السهل العثور على سلسلة محددة داخل الملفات في أقصر وقت ممكن. سيكون بناء الجملة المراد استخدامه:
ag OPCIONES PATRÓN_DE_BÚSQUEDA /ruta/al/archivo
على سبيل المثال ، للبحث عن "لينكس' في الملف text.txt، علينا أن نكتب في المحطة (Ctrl + Alt + T):
ag Linux texto.txt
لمعرفة المزيد من الخيارات يمكننا الرجوع إلى صفحات الرجل:
man ag
هذه ليست سوى بعض أدوات سطر الأوامر الأكثر استخدامًا للبحث عن النص وتصفيته ومعالجته في Linux.