ذكري المظهر

الأمر Tr في لينكس مع أمثلة

Linux File Permissions: Commands with Examples - Linux Tutorial 6

Linux File Permissions: Commands with Examples - Linux Tutorial 6

جدول المحتويات:

Anonim

tr هي أداة مساعدة لسطر الأوامر في أنظمة Linux و Unix تقوم بترجمة وحذف وضغط الأحرف من الإدخال القياسي وتكتب النتيجة إلى الإخراج القياسي.

يمكن للأمر tr القيام بعمليات مثل إزالة الأحرف المتكررة ، وتحويل الأحرف الكبيرة إلى أحرف صغيرة ، واستبدال الأحرف الأساسية وإزالتها. عادة ، يتم استخدامه في تركيبة مع الأوامر الأخرى من خلال الأنابيب.

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

كيفية استخدام الأمر tr

بناء جملة الأمر tr كالتالي:

tr OPTION… SET1

يقبل tr مجموعتين من الأحرف ، عادةً بنفس الطول ، ويستبدل أحرف المجموعات الأولى بالأحرف المقابلة من المجموعة الثانية.

SET هي في الأساس سلسلة من الأحرف ، بما في ذلك الأحرف الخاصة المائلة للخلف.

في المثال التالي ، سيحل tr محل جميع الأحرف من الإدخال القياسي (linuxize) ، عن طريق تعيين الأحرف من المجموعة الأولى بالأحرف المتطابقة من المجموعة الثانية.

echo 'linuxize' | tr 'lin' 'red'

يتم استبدال كل تواجد l بـ r و i e و n بـ d :

reduxeze

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

echo 'linuxize' | tr 'lmno' 'wxyz'

يمكنك استخدام:

echo 'linuxize' | tr 'ln' 'w-z'

عند --complement الخيار -c ( --complement ) ، يستبدل tr جميع الأحرف غير الموجودة في SET1.

في المثال أدناه ، سيتم استبدال جميع الأحرف باستثناء "li" بالحرف الأخير من المجموعة الثانية:

echo 'linuxize' | tr -c 'li' 'xy'

liyyyiyyy

كما قد تلاحظ ، يكون للإخراج أعلاه حرف مرئي واحد أكثر من الإدخال. هذا بسبب قيام أمر echo بطباعة حرف سطر غير مرئي يتم استبداله أيضًا بـ y . لتردد سلسلة بدون سطر جديد ، استخدم الخيار -n .

يخبر الخيار -d ( -d حذف) tr بحذف الأحرف المحددة في SET1. عند حذف الحروف دون الضغط ، حدد مجموعة واحدة فقط.

سيؤدي الأمر التالي إلى إزالة الأحرف l و i و z :

echo 'Linuxize' | tr -d 'liz'

لا يتم حذف الحرف L لأن الإدخال يتضمن حرفًا كبيرًا L بينما يكون الحرف l في SET صغيرًا.

Lnuxe

يستبدل الخيار -s ( --squeeze-repeats ) سلسلة من الأحداث المتكررة مع الحرف الذي تم تعيينه في SET الأخير.

في المثال التالي ، يزيل tr أحرف المسافات المتكررة:

echo "GNU \ Linux" | tr -s ' '

GNU \ Linux

عند استخدام SET2 ، يتم استبدال تسلسل الحرف المحدد في SET1 بـ SET2.

echo "GNU \ Linux" | tr -s ' ' '_'

GNU_\_Linux

--truncate-set1 الخيار -t ( --truncate-set1 ) tr على اقتطاع SET1 إلى طول SET2 قبل القيام بالمزيد من المعالجة.

بشكل افتراضي ، إذا كان SET1 أكبر من SET2 tr فسيتم إعادة استخدام الحرف الأخير من SET2. هنا مثال:

echo 'Linux ize' | tr 'abcde' '12'

يُظهر الإخراج أن الحرف e من SET1 يتطابق مع أحدث حرف SET2 ، وهو 2 :

Linux iz2

الآن ، استخدم نفس الأمر مع الخيار -t :

echo 'Linux ize' | tr -t 'abcde' '12'

Linux ize

يمكنك أن ترى أنه تمت إزالة الأحرف الثلاثة الأخيرة من SET1. SET1 يصبح "ab" ، بنفس طول SET2 ، ولا يتم إجراء أي بديل.

الجمع بين الخيارات

يتيح لك الأمر tr أيضًا دمج خياراته. على سبيل المثال ، يستبدل الأمر التالي أولاً جميع الأحرف باستثناء i بـ 0 ثم يضغط على 0 حرفًا متكررًا:

echo 'Linux ize' | tr -cs 'i' '0'

0i0i0

أمثلة على أوامر TR

في هذا القسم ، سنغطي بعض الأمثلة على الاستخدامات الشائعة للأمر tr .

تحويل الأحرف الصغيرة إلى الحالة العليا

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

echo 'Linuxize' | tr '' ''

LINUXIZE

بدلاً من فئات الأحرف ، يمكنك أيضًا استخدام النطاقات:

echo 'Linuxize' | tr 'az' 'A-Z'

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

قم بإزالة جميع الأحرف غير الرقمية

يزيل الأمر التالي جميع الأحرف غير الرقمية:

echo "my phone is 123-456-7890" | tr -cd

يرمز إلى جميع الأحرف الرقمية ، وباستخدام الخيار -c ، يزيل الأمر جميع الأحرف غير الرقمية. سيبدو الإخراج كالتالي:

1234567890

ضع كل كلمة في سطر جديد

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

echo 'GNU is an operating system' | tr -cs '' '\n'

GNU is an operating system

إزالة الخطوط الفارغة

لحذف الأسطر الفارغة ، ما عليك سوى الضغط على أحرف السطر الجديد المتكررة:

tr -s '\n' < file.txt > new_file.txt

في الأمر أعلاه ، نستخدم رمز إعادة التوجيه < لتمرير محتوى file.txt إلى الأمر tr . إعادة التوجيه > يكتب إخراج الأمر إلى new_file.txt .

طباعة دلائل $PATH على سطر منفصل

المتغير البيئي $PATH عبارة عن قائمة دلائل محددة بنقطتين تخبر shell عن الأدلة التي تبحث عن الملفات القابلة للتنفيذ عند كتابة أمر.

لطباعة كل دليل على سطر منفصل ، نحتاج إلى مطابقة النقطتين (:) واستبداله بالسطر الجديد:

echo $PATH | tr ':' '\n'

/usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin

استنتاج

tr هي أمر لترجمة أو حذف الحروف.

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

محطة tr