OnWorks Linux ו-Windows Online WorkStations

לוגו

אירוח מקוון בחינם עבור תחנות עבודה

<הקודם | תוכן | הבא>

tr

השמיים tr התוכנית רגילה תעתיק דמויות. אנחנו יכולים לחשוב על זה כמעין פעולת חיפוש והחלפה מבוססת תווים. תעתיק הוא תהליך של שינוי תווים מאלפבית אחד למשנהו. לדוגמה, המרת תווים מאותיות קטנות לאותיות גדולות היא תעתיק. אנחנו יכולים לבצע המרה כזו עם tr באופן הבא:


[me@linuxbox ~]$ הד "אותיות קטנות" | tr az AZ

אותיות קטנות

[me@linuxbox ~]$ הד "אותיות קטנות" | tr az AZ

אותיות קטנות


כמו שאנו יכולים לראות, tr פועל על קלט סטנדרטי, ומוציא את תוצאותיו על פלט סטנדרטי. tr מקבל שני ארגומנטים: קבוצה של תווים להמרה וקבוצה מתאימה של תווים להמרה. קבוצות תווים עשויות לבוא לידי ביטוי באחת משלוש דרכים:

1. רשימה מנויה. לדוגמה, אבגדהוזחטיכלמנסעפצקרשת

2. טווח תווים. לדוגמה, AZ. שים לב ששיטה זו נתונה לפעמים לאותן בעיות כמו פקודות אחרות, בשל סדר האיסוף המקומי, ולכן יש להשתמש בה בזהירות.

3. כיתות תו POSIX. לדוגמה, [:עֶלִיוֹן:].

ברוב המקרים, שתי ערכות התווים צריכות להיות באורך שווה; עם זאת, ייתכן שהקבוצה הראשונה תהיה גדולה מהשנייה, במיוחד אם ברצוננו להמיר מספר תווים לתו בודד:



[me@linuxbox ~]$ הד "אותיות קטנות" | tr [:lower:] א

AAAAAAAAA AAAAAAA

[me@linuxbox ~]$ הד "אותיות קטנות" | tr [:lower:] א

AAAAAAAAA AAAAAAA


בנוסף לתעתיק, tr מאפשר פשוט למחוק תווים מזרם הקלט. מוקדם יותר בפרק זה, דנו בבעיה של המרת קבצי טקסט MS-DOS לטקסט בסגנון Unix. כדי לבצע המרה זו, יש להסיר תווי החזרת עגלה מסוף כל שורה. ניתן לבצע זאת עם tr באופן הבא:

tr -d '\r' dos_file > unix_file


איפה dos_file הוא הקובץ שיש להמיר ו unix_file היא התוצאה. צורה זו של הפקודה משתמשת ברצף הבריחה \r לייצג את תו החזרת הגררה. כדי לראות רשימה מלאה של הרצפים ומחלקות הדמויות tr תומך, נסה:


[me@linuxbox ~]$ tr --עזרה

[me@linuxbox ~]$ tr --עזרה


תמונה

ROT13: טבעת המפענח הלא כל כך סודית

שימוש משעשע אחד של tr זה להופיע קידוד ROT13 של טקסט. ROT13 הוא סוג טריוויאלי של הצפנה המבוססת על צופן החלפה פשוט. לקרוא ל-ROT13 "הצפנה" זה להיות נדיב; "ערפול טקסט" מדויק יותר. הוא משמש לפעמים בטקסט כדי לטשטש תוכן שעלול להיות פוגעני. השיטה פשוט מעבירה כל תו 13 מקומות במעלה האלפבית. מכיוון שזה במחצית הדרך מעל 26 התווים האפשריים, ביצוע האלגוריתם בפעם השנייה על הטקסט משחזר אותו לצורתו המקורית. כדי לבצע את הקידוד הזה עם tr:

הד "טקסט סודי" | טר א-ז-ז נ-ז-מנ-ז-מ

frperg grkg

ביצוע אותו הליך בפעם השנייה מביא לתרגום:

echo "frperg grkg" | טר א-ז-ז נ-ז-מנ-ז-מ

טקסט סודי

מספר תוכניות דואר אלקטרוני וקוראי חדשות Usenet תומכים בקידוד ROT13. ויקיפדיה מכילה מאמר טוב בנושא:

http://en.wikipedia.org/wiki/ROT13


tr יכול לבצע גם טריק נוסף. באמצעות האפשרות -s, tr יכול "לסחוט" (למחוק) מופעים חוזרים של תו:



[me@linuxbox ~]$ echo "aaabbbccc" | tr -s ab

abccc

[me@linuxbox ~]$ echo "aaabbbccc" | tr -s ab

abccc


כאן יש לנו מחרוזת המכילה תווים חוזרים. על ידי ציון הסט "ab" ל tr, אנו מבטלים את המופעים החוזרים של האותיות בקבוצה, תוך השארת התו החסר בקבוצה ("c") ללא שינוי. שימו לב שהתווים החוזרים חייבים להיות צמודים. אם הם לא:


[me@linuxbox ~]$ הד "abcabcabc" | tr -s ab

abcabcabc

[me@linuxbox ~]$ הד "abcabcabc" | tr -s ab

abcabcabc


למעיכה לא תהיה השפעה.


מחשוב ענן מערכת ההפעלה המוביל ב-OnWorks: