طريقة فك قفل الشاشة والرمز السري للاندرويد عند نسيانه بدون فورمات او روت
جدول المحتويات:
في كثير من الأحيان عند العمل مع الملفات النصية ، ستحتاج إلى البحث عن سلاسل نصية واستبدالها في ملف واحد أو أكثر.
sed
هو s tream ed itor. يمكن أن تؤدي معالجة النصوص الأساسية على الملفات وتدفقات الإدخال مثل خطوط الأنابيب. باستخدام
sed
يمكنك البحث عن الكلمات والخطوط
sed
واستبدالها وإدراجها وحذفها. وهو يدعم التعبيرات العادية والممتدة التي تتيح لك مطابقة الأنماط المعقدة.
سنتحدث عن كيفية العثور على الأوتار واستبدالها بـ
sed
. سنعرض لك أيضًا كيفية إجراء بحث متكرر واستبداله.
البحث واستبدال سلسلة مع
sed
هناك العديد من إصدارات
sed
، مع بعض الاختلافات الوظيفية بينهما. يستخدم macOS إصدار BSD ومعظم توزيعات Linux تأتي مع GNU
sed
مثبتة بشكل افتراضي. سوف نستخدم نسخة جنو.
يتخذ الشكل العام للبحث واستبدال النص باستخدام
sed
الشكل التالي:
sed -i 's/SEARCH_REGEX/REPLACEMENT/g' INPUTFILE
-
-i- بشكل افتراضي ، يكتبsedإخراجه إلى الإخراج القياسي. هذا الخيار يخبرsedبتحرير الملفات في مكانها. إذا تم توفير ملحق (على سبيل المثال ، i.bak) ، فسيتم إنشاء نسخة احتياطية من الملف الأصلي.s- الأمر البديل ، وربما أكثر الأوامر استخدامًا في sed./ / /- حرف محدد. يمكن أن يكون أي حرف ولكن عادةً ما يتم استخدام حرف شرطة مائلة (/).SEARCH_REGEX- سلسلة عادية أو تعبير عادي للبحث عنه.REPLACEMENT- سلسلة استبدال.g- العلم البديل العالمي.SEARCH_REGEXللإعدادات الافتراضية ، يقومsedبقراءة سطر الملف بسطر وتغيير التواجد الأول فقط لـSEARCH_REGEXعلى السطر. عند توفير علامة الاستبدال ، سيتم استبدال جميع التكرارات.INPUTFILE- اسم الملف الذي تريد تشغيل الأمر عليه.
من الممارسات الجيدة وضع علامات الاقتباس حول الوسيطة حتى لا تتوسع أحرف تعريف shell.
دعونا نرى أمثلة على كيفية استخدام الأمر
sed
للبحث واستبدال النص في الملفات مع بعض الخيارات والأعلام الأكثر استخدامًا.
لأغراض العرض التوضيحي ، سنستخدم الملف التالي:
file.txt
123 Foo foo foo foo /bin/bash Ubuntu foobar 456
sed -i 's/foo/linux/' file.txt
123 Foo linux foo linux /bin/bash Ubuntu foobar 456
مع استبدال العلم العالمي
sed
يستبدل كل تكرارات نمط البحث:
sed -i 's/foo/linux/g' file.txt
123 Foo linux linux linux /bin/bash Ubuntu linuxbar 456
كما لاحظت ، في المثال السابق ، يتم أيضًا استبدال السلسلة الفرعية الموجودة داخل سلسلة
foobar
. إذا لم يكن هذا هو السلوك المطلوب ، فاستخدم تعبير كلمة boundery (
\b
) في طرفي سلسلة البحث. هذا يضمن عدم مطابقة الكلمات الجزئية.
sed -i 's/\bfoo\b/linux/g' file.txt
123 Foo linux linux linux /bin/bash Ubuntu foobar 456
لجعل حالة تطابق النمط غير حساسة ، استخدم إشارة
I
في المثال أدناه ، نستخدم كل من
g
و
I
:
sed -i 's/foo/linux/gI' file.txt
123 linux linux linux linux /bin/bash Ubuntu linuxbar 456
sed -i 's/\/bin\/bash/\/usr\/bin\/zsh/g' file.txt
الخيار الأسهل والأكثر قابلية للقراءة هو استخدام حرف محدد آخر. يستخدم معظم الأشخاص الشريط العمودي (
|
) أو النقطتين (:) ولكن يمكنك استخدام أي شخصية أخرى:
sed -i 's|/bin/bash|/usr/bin/zsh|g' file.txt
123 Foo foo foo foo /usr/bin/zsh Ubuntu foobar 456
يمكنك أيضا استخدام التعبيرات العادية. على سبيل المثال ، للبحث في جميع الأرقام الثلاثة واستبدالها
number
السلسلة الذي ستستخدمه:
sed -i 's/\b\{3}\b/number/g' file.txt
number Foo foo foo foo /bin/bash demo foobar number
ميزة أخرى مفيدة من sed هو أنه يمكنك استخدام حرف علامة الضم والذي يتوافق مع النمط المتطابق. شخصية يمكن استخدامها عدة مرات.
على سبيل المثال ، إذا كنت تريد إضافة أقواس متعرجة
{}
حول كل رقم مكون من 3 أرقام ، فاكتب:
sed -i 's/\b\{3}\b/{&}/g' file.txt
{123} Foo foo foo foo /bin/bash demo foobar {456}
أخيرًا وليس آخرًا ، من الأفضل دائمًا عمل نسخة احتياطية عند تحرير ملف باستخدام
sed
. للقيام بذلك ، ما عليك سوى توفير امتداد لخيار
-i
. على سبيل المثال ، لتحرير
file.txt
وحفظ الملف الأصلي باسم
file.txt.bak
ستستخدم:
sed -i.bak 's/foo/linux/g' file.txt
ls
البحث العودية واستبدالها
في بعض الأحيان تريد البحث بشكل متكرر الدلائل عن الملفات التي تحتوي على سلسلة واستبدال السلسلة في جميع الملفات. يمكن القيام بذلك باستخدام أوامر مثل
find
أو
grep
للعثور على الملفات بشكل متكرر في الدليل وتوصيل أسماء الملفات إلى
sed
.
سيبحث الأمر التالي بشكل متكرر عن الملفات في دليل العمل الحالي
sed
أسماء الملفات إلى
sed
.
find. -type f -exec sed -i 's/foo/bar/g' {} +
لتجنب المشكلات المتعلقة بالملفات التي تحتوي على مساحة بأسمائها ، استخدم الخيار
-print0
الذي يروي
find
عن طباعة اسم الملف ، متبوعًا بحرف فارغ وإخراج الإخراج إلى
sed
باستخدام
xargs -0
:
find. -type f -print0 | xargs -0 sed -i 's/foo/bar/g'
لاستثناء دليل ، استخدم خيار
-not -path
. على سبيل المثال ، إذا كنت تستبدل سلسلة في ملف git repo المحلي لاستبعاد جميع الملفات التي تبدأ بالنقطة (
.
) ، فاستخدم:
find. -type f -not -path '*/\.*' -print0 | xargs -0 sed -i 's/foo/bar/g'
find. -type f -name "*.md" -print0 | xargs -0 sed -i 's/foo/bar/g'
هناك خيار آخر يتمثل في استخدام أمر
grep
للبحث عن جميع الملفات التي تحتوي على نمط البحث بشكل متكرر ثم توجيه أسماء الملفات إلى
sed
:
grep -rlZ 'foo'. | xargs -0 sed -i.bak 's/foo/bar/g'
استنتاج
على الرغم من أن الأمر قد يبدو معقدًا ومعقدًا ، إلا أن البحث عن نص واستبداله في ملفات باستخدام
sed
هو أمر بسيط للغاية.
لمعرفة المزيد حول أوامر
sed
، والخيار ، والأعلام ، تفضل بزيارة دليل GNU و Grymoire sed التعليمي. إذا كان لديك أي أسئلة أو تعليقات ، فلا تتردد في ترك تعليق.
أعلى 5 تطبيقات أندرويد لإيجاد خلفيات مسطحة ، والحد الأدنى
هنا هي أعلى 5 تطبيقات أندرويد لإيجاد خلفيات مسطحة والحد الأدنى.
كيفية إضافة العثور على واستبدال فايرفوكس: أعلى 4 ملحقات
البحث والاستبدال هي ميزة غير موجودة افتراضيًا في Firefox. نختار أفضل 4 ملحقات لإضافة هذه الوظيفة في متصفح Firefox.
كيفية التحقق مما إذا كانت السلسلة تحتوي على سلسلة فرعية في bash
من أكثر العمليات شيوعًا عند العمل مع السلاسل في Bash تحديد ما إذا كانت السلسلة تحتوي على سلسلة أخرى أم لا. في هذه المقالة ، سنعرض لك عدة طرق للتحقق مما إذا كانت السلسلة تحتوي على سلسلة فرعية.







