كيفية أستخدام sed من أجل إنشاء تحرير معالجة الملفات في لينكس ؟
أهم الأوامر المستخدمة في إدراة أنظمة لينكس sed . [2]
ملخص ما سوف نتعلمه .
1- # sed ‘s/x/X/g’ file
2- # sed ‘s/x/X/g’ file.1 > file.2
3- # sed 's/x/\&/g;s/^Ich/Du/g' file.1
4- # sed -n '/^xxxx/p' P/to/D/D/F | sed -n 1,5p
5- # sed '/^#\|^$/d' file
سوف نستخدم sed و هو إختصار ل stream editor .
لماذا نستخدم sed ؟
يستخدم لإجراء تحويلات النص الأساسية
lowercase y
UPPERCASE Y
g for all instances
دعنا ننشئ ملف جديد و نضع فيه التالي :
There are many different versions of Linux, and unlike other commercial operating systems that are controlled, distributed and supported by only one company, the core of Linux is free to distribute and use. This creates a situation in which numerous companies, organizations and individuals have developed their own specific version of the Linux operating system. When these versions are made publicly available for use, they are known as distributions.
سوف يكون بناء الجملة الأساسي كالتالي :
# sed ‘s/x/X/flag’ file
:~$ touch linux-www
# sed ‘s/a/A/g’ linux-www > www-linux-www
~$ ls
linux-www www-linux-www
:~$ cat www-linux-www
There Are mAny different versions of Linux, And unlike other commerciAl operAting systems thAt Are controlled, distributed And supported by only one compAny, the core of Linux is free to distribute And use. This creAtes A situAtion in which numerous compAnies, orgAnizAtions And individuAls hAve developed their own specific version of the Linux operAting system. When these versions Are mAde publicly AvAilAble for use, they Are known As distributions.
يمكن الآن أيضا أستخدام الاننين معا cat + sed
~$ echo ' a b c ' > Ex
$ cat Ex | sed 's/a/A/'
A b c
و يمكن تنفيذه مباشرة .
~$ sed 's/a/A/' Ex
A b c
لاحظ في كلا الأمرين لم يحفظ التغييرات .
~$ cat Ex
a b c
سوف نضيف حرف آخر .
~$ echo 'a' >> Ex
لاحظ أن الأوامر السابقة تجري التغيير فقط على أول حرف a لو أردنا جعل التغييرات تشمل جميع حروف a علينا إضافة الخيار g
$ sed 's/a/A/g' Ex
A b c
A
هناك خياران لحفظ التغييرات هي التالي :
1- إعادة توجيه الملف الأول إلى ملف جديد .
sed ‘s/a/A/g’ > Ex > new.txt
2- إضافة خيار .
sed -i ‘s/a/A/g’ > Ex
بعض المفاهيم .
1- نستخدم backward slash من أجل استبدال حرف عادي بحرف خاص مثل a-y ب @
~$ nano linux-www
hello + hi
~$ sed 's/and/\@/g' linux-www>linux-www1
:~$ cat linux-www1
@ + @
2- الجمع بين أمرين أو أكثر من أوامر الاستبدال من خلال الفاصلة ;
- نستخدم ^ للاستبدال من بداية السطر .
~$ echo '
a b c d
a b c d
b a c d
c a b c
' > linux-www
مثال :
~$ sed 's/^b/first_of_the_line/g;s/^c/\=/g;s/a/A/g' linux-www >linux-www2
$ cat linux-www2
A b c d
A b c d
first_of_the_line A c d
= A b c
كيفية عرض الملفات من خلال أستخدام الأمر sed ؟
يطبع كل شئ بدون خيارات , نضيف خيار N من أجل تحديد الإخراج المراد .
~$ sed ' ' linux-www
a b c d
a b c d
b a c d
c a b c
لاحظ يعيد الإخراج مرتين لو أضفت خيار N لكان الإخراج مختلف .
xxxx@linux:~$ sed 'p' linux-www
a b c d
a b c d
a b c d
a b c d
b a c d
b a c d
c a b c
c a b c
xxxx@linux:~$ cat linux-www
a b c d
a b c d
b a c d
c a b c
~$ sed -n 'p' linux-www
a b c d
a b c d
b a c d
c a b c
كيفية استهداف أجزاء محددة من النص ؟
1- يطبع السطر الأول على الشاشة .
$ sed -n '1p' linux-www
a b c d
أخبرت sed عن رقم السطر أو أي سطر تريد .
و يمكن أيضا العرض من بداية جملة ما من خلال التالي
ماذا تفعل لو أردنا طباعة خمسة سطور ؟
$ sed -n '1,5p' linux-www
a b c d
a b c d
b a c d
c a b c
1- a b c d
هل يمكن تخطي طباعة أسطر ؟
نعم
$ sed -n '1~2p' linux-www
a b c d
b a c d
1- a b c d
3- b a c d
5- a b c d
7- b a c d
$ sed -n '1~3p' linux-www
a b c d
c a b c
3- b a c d
6- a b c d
نريد طباعة السطر الذي يحتوي على سي من بدايته .
~$ sed -n '/^c/p' linux-www
كيفية استخدام sed من أجل الحذف ؟
1- حذف جميع الاسطر من أمر العرض 1-2 من خلال التالي :
~$ cat linux-www2
a B c d
a B c d
B a c d
c a B c
1- a B c d
2- a B c d
3- B a c d
4- c a B c
5- a B c d
6- a B c d
7- B a c d
8- c a B c
xxxx@linux:~$ sed '1~2d' linux-www2
a B c d
c a B c
2- a B c d
4- c a B c
6- a B c d
8- c a B c
سوف يؤدي لحذفها من العرض فقط .
إذا أردنا حفظ تعديلاتنا ، فيمكننا إعادة توجيه الإخراج القياسي إلى ملف مثل:
$ sed '1~2d' linux-www2 > linux-www3
xxxx@linux:~$ sed '' linux-www3
a B c d
c a B c
2- a B c d
4- c a B c
6- a B c d
8- c a B c
من الأوامر المفيد حين تقوم بإعداد أحد الخدمات حذف سطر معين .
:~$ sed '3d' linux-www
1- a b c d
2- a b c d
4- c a b c
5- a b c d
6- a b c d
7- b a c d
8- c a b c
و يمكن أيضا حذف شئ ما من سطر ما .
في حال أردت الكتابة فوق الملف الأصلي فقط استخدم الخيار -i
sed -i '1~2d' linux-www
من الجيد إنشاء نسخ احتياطية عن الملفات التي يتم تعديلها ,
sed -i.bak '1~2d' linux-www
- كيفية أضافة مستخدم جديد أو حذف مستخدم لينكس ؟
- كيفية إعداد Virtual Hosts على debian10 ؟
- كيفية تثبيت خادم الويب Apache2 على debian ؟
- كيفية معرفة حجم الملف في لينكس ؟
- كيفية تغيير اسم المضيف على ديبيان 10 لينكس ؟
- كيف أنشاء مستودع git محلي و نقله للمستودع البعيد ؟
- كيفية تثبيت Cockpit على Ubuntu أو Debian ؟
لينكس
- أسباب تجعلك بحاجة لتعلم لينكس
- الأفعال في اللغة الألمانية في جميع الأزمنة .
- كيفية أستخدام sed من أجل إنشاء تحرير معالجة الملفات في لينكس ؟ [1]
- كيفية إعداد مفاتيح SSH على دبيان 10 ؟
- كيفية تبادل الملفات بين الخوادم ؟
- كيفية تكوين Virtual Host لعدة مواقع في Apache ؟
- الترقيع، طريق إرسال التصحيحات
- كيف أنشاء مستودع git محلي و نقله للمستودع البعيد ؟
- كيفية أضافة مستخدم جديد أو حذف مستخدم لينكس ؟
- كيفية إعداد Virtual Hosts على debian10 ؟
- كيفية تثبيت Cockpit على Ubuntu أو Debian ؟
- كيفية تثبيت sudo و تكوين مستخدم مع صلاحياته ؟
- كيفية تثبيت خادم الويب Apache2 على debian ؟
- كيفية تغيير اسم المضيف على ديبيان 10 لينكس ؟
- كيفية معرفة حجم الملف في لينكس ؟
0 تعليقات
تقديم إقتراح