السلام عليكم ورحمة الله وبركاته
تعرفنا سابقا في موضوع الأمر cut لقص واستخراج جزء من النص على أداة فلترة النصوص cut وبعض استخداماتها كما التمسنا في موضوع تعرف على أكثر الأوامر التي تستخدمها على Terminal
قوة أدوات الفلترة عند دمجها مع بعض ؛ واليوم بإذن الله سنتعرف على الأمر tr لتحويل واستبدال المحارف مع أمثلة عملية لاستخدامه .
أمثلة عن استخدام الأمر tr
سأذكر مجموعة
من الأمثلة مستخدما الأمر tr لإبراز
إمكانياته في فلترة النصوص :
-نستطيع بواسطة
tr استبدال
محرف واحد أو قائمة من المحارف إلى محارف
أخرى ، وكمثال على هذا :
echo OtmangX | tr "OX" "ox"
-اسبتدال الأحرف
الكبيرة بالصغيرة وذلك من خلال استخدام المجالات
a-z و A-z
cat /etc/issuecat /etc/issue | tr A-Z a-ztr A-Z a-z /etc/issuetr A-Z a-z < /etc/issue
الأمر tr يقبل المدخلات فقط من مجرى الدخل القياسي وبالتالي لا نستطيع تمرير ملف ما كبارامتر ولحل هذه المشكلة نستخدم المعامل < لجعل مدخلات الأمر من ملف ما .
-يستعمل الملف
/etc/passwd نقطة
التفسير ":" لفصل
الحقول بعضها عن بعض، يمكننا تغيير هذا
الفاصل برمز آخر مثلا علامة التعجب !
عن طريق التالي :
head /etc/passwdhead /etc/passwd | tr ':' '!'
ناتج الأوامر السابقة:
-الآن سنقوم
بإظهار خمس أسطر الأولى من ملف /etc/passwd
وإجراء بضع
تعديلات
سنقوم بترقيم
الأسطر عن طريق الأمر nl
head -5 /etc/passwdhead -5 /etc/passwd | nl
-الآن مذا لو
أردنا بدل الأرقام وضع الحروف لتعداد
الأسطر
head -5 /etc/passwd | nl | tr '1-9' 'a-e'head -5 /etc/passwd | nl | tr '1-9' 'A-E'
ناتج الأوامر السابقة:
خصائص الأمر tr
-d : حذف قائمة
المحارف أو الرموز أو الفئات الممررة مع
الأمر
-s : لحذف تكرار
الأحرف .
فكما ترون فالأمر
nl يقوم
بوضع مسافات فارغة في الهامش وكذلك بعد
الرقم ، ونود حذف كل هذه المسافات بدون
الخوض في خصائص الأمر nl، ومن أجل هذا سنستعين بالفئة [:blank:]
التي ترمز للفراغات الأفقية :
head -5 /etc/passwd | nl | tr -d [:blank:]
كما يمكننا بدل
حذف كل المسافات الفارغة حذف تكرارها فقط
والإبقاء على مسافة فارغة واحدة
head -5 /etc/passwd | nl | tr -s [:blank:] ' '
هناك فئات أخرى متاحة للاستعمال كما في المثال التالي لو أردنا حذف تكرارات الأحرف:
echo LLinuxx | tr -s Lxecho LLiiiinnnuxx | tr -s [:alpha:]
حذفنا جميع التكرارات الزائدة للحرفين "L" و "x" في الأمر الأول، وفي المثال الثاني جعلنا الأمر أكثر شمولية ليشمل جميع الأحرف المكررة .
استخدمنا في هذه الأمثلة الأخيرة ما يسمى بالفئات ، وهذه أمثلة عنها :
وكمثال أخير ،
سنتطرق إلى كيفية تحويل ملف نصي من صيغة
DOS إلى
صيغة UNIX
tr -d '\r' file_dos > file_unix
استخدمنا الرمز \r وهناك غيرها، وهذه قائمة بالرموز مع معانيها :
إلى موضوع آخر إن شاء الله
الإبتساماتإخفاء