לפעמים, ייתכן שיהיה עליך להסיר תווים ממחרוזת. לא משנה מה הסיבה לכך, לינוקס מספקת לך כלים מובנים ושימושיים שונים המאפשרים לך להסיר תווים ממחרוזת ב- Bash. מאמר זה מראה לך כיצד להשתמש בכלים אלה להסרת תווים ממחרוזת.
המאמר עוסק כיצד לבצע את הפעולות הבאות:
- הסר תו מהמחרוזת באמצעות sed
- הסר תו מהמחרוזת באמצעות awk
- הסר תו מהמחרוזת באמצעות חיתוך
- הסר תו מהמחרוזת באמצעות tr
הפקודות המוצגות במאמר זה בוצעו ב- Ubuntu 20.04 Focal Fossa. ניתן לבצע אותן פקודות גם בהפצות לינוקס אחרות שיש להן את הכלים הנ'ל. נשתמש ביישום ברירת המחדל של מסוף להפעלת הפקודות. תוכל לגשת ליישום מסוף באמצעות קיצור המקשים Ctrl+Alt+T.
הסר תווים מהמחרוזת באמצעות sed
Sed הוא כלי עזר רב שימושי המשמש לעריכת זרמי טקסט. זהו עורך טקסט שאינו אינטראקטיבי המאפשר לך לבצע מניפולציות טקסט בסיסיות בזרמי קלט. אתה יכול גם להשתמש ב- sed כדי להסיר תווים לא רצויים מהמחרוזות.
לצורכי הדגמה, נשתמש במחרוזת לדוגמא ולאחר מכן נצמיד אותה לפקודת sed.
הסר תו ספציפי מהמחרוזת
באמצעות sed, תוכל להסיר תו ספציפי ממחרוזת. לדוגמה, כדי להסיר h מהמחרוזת שלום מה שלומך? הפקודה תהיה:
$זרק 'שלום מה שלומך?' | sed s/h // 'פעולה זו תסיר רק את המופע הראשון של 'h' במחרוזת.
כדי להסיר את כל המופעים של 'h' מהמחרוזת, השתמש בפקודה הבאה:
$זרק 'שלום מה שלומך?' | sed s/h // g '
איפה ז מייצג גלובלי. זה יסיר את כל המופעים של 'h' במחרוזת.
הסר את התו הראשון מהמחרוזת
כדי להסיר את התו הראשון מהמחרוזת שלום מה שלומך? הפקודה תהיה:
$זרק 'שלום מה שלומך?' | sed 's /^.//' קוֹבֶץכאשר (.) תואם בדיוק תו יחיד ו- (^) תואם כל תו בתחילת המחרוזת.
הסר את התו האחרון מהמחרוזת
כדי להסיר את התו האחרון מהמחרוזת שלום מה שלומך? הפקודה תהיה:
$זרק 'שלום מה שלומך?' | sed 's /.$//'איפה ( . ) תואם בדיוק תו יחיד ו ($) תואם כל תו בסוף המחרוזת.
הסר את התו הראשון והאחרון מהמחרוזת
כדי להסיר את התו הראשון והאחרון מהמחרוזת שלום מה שלומך? הפקודה תהיה:
$זרק 'שלום מה שלומך?' | sed 's /^.//; s /.$//'
הסר תווים מהמחרוזת באמצעות awk
Awk היא שפת סקריפטים עוצמתית המשמשת להתאמת תבניות, יחד עם עיבוד טקסט. Awk מאפשר לך לסנן ולהמיר טקסט בדרכים שונות. אתה יכול גם להשתמש ב- awk כדי להסיר תווים מהמחרוזות.
למטרות הדגמה, נשתמש במחרוזת לדוגמא ולאחר מכן נצנף אותה לפקודת awk.
הסר את התו הראשון ממחרוזת
כדי להסיר את התו הראשון מהמחרוזת שלום מה שלומך? הפקודה תהיה:
$זרק 'שלום מה שלומך?' | awk '{subprint print ($ 0, 2)}'כאשר ($ 0) היא מחרוזת המטרה כולה ו- (2) היא מיקום ההתחלה של התו. הפקודה למעלה מסירה את התו הראשון, 'h', מספר התו '1' ומחזירה את מחרוזת היעד המתחילה בתו השני, 'e'.
הסר את שתי התווים הראשונים מהמחרוזת
תוכל גם להסיר מספר מסוים של תווים מתחילת המחרוזת. לדוגמה, כדי להסיר את שתי התווים הראשונים מהמחרוזת שלום מה שלומך? הפקודה תהיה:
$זרק 'שלום מה שלומך?' | awk '{subprint print ($ 0, 3)}'הפקודה לעיל תסיר את שתי התווים הראשונים, 'הוא' או מספרי תווים '1 ו -2', ומחזירה את מחרוזת המטרה המתחילה במספר התווים '3' או 'l'.
הסר את התו האחרון מהמחרוזת
כדי להסיר את הדמות האחרונה מ שלום מה שלומך? הפקודה תהיה:
$זרק 'שלום מה שלומך?' | awk '{subprint print ($ 0, 1, length ($ 0) -1)}'איפה אורך ($ 0) -1 פירושו ניכוי ' 1 'מתוך אורך הדמות הכולל.
הפקודה לעיל תדפיס את המחרוזת המתחילה במספר תו ' 1 ' עד ל אורך ($ 0) -1 כדי להסיר את הדמות האחרונה.
יש ' 19 'תווים (כולל רווחים) במחרוזת לעיל. הפקודה תפעל על ידי הדפסת כל התווים, החל בתו ' 1 'ועד לדמות' 18 , 'תוך הסרת הדמות האחרונה' 19 . '
הסר את שתי התווים האחרונים מהמחרוזת
כדי להסיר את שתי התווים האחרונים מ שלום מה שלומך? הפקודה תהיה:
$זרק 'שלום מה שלומך?' | awk '{sub print print ($ 0, 1, length ($ 0) -2)}'איפה אורך ($ 0) -2 פירושו ניכוי ' 2 'מתוך אורך הדמות הכולל.
הפקודה לעיל תדפיס את המחרוזת, שתתחיל במספר תו ' 1 'ועד מספר התו' אורך ($ 0) -2 , 'כדי להסיר את שתי התווים האחרונים במחרוזת.
הסר את התווים הראשונים והאחרונים מהמחרוזת
כדי להסיר את התווים הראשונים והאחרונים מהמחרוזת שלום מה שלומך? הפקודה תהיה:
$זרק 'שלום מה שלומך?' | awk '{subs print ($ 0, 2, length ($ 0) - 2)}'איפה אורך ($ 0) -2 פירושו ניכוי ' 2 'מתוך אורך הדמות הכולל.
הפקודה לעיל תדפיס את המחרוזת, שתתחיל במספר תו ' 2 'עד מספר תו' אורך ($ 0) -2 , 'כדי להסיר את התו הראשון והאחרון.
הסר תו מהמחרוזת בעזרת חיתוך
Cut הוא כלי שורת פקודה המשמש בדרך כלל לחלץ חלק טקסט ממחרוזת או מקובץ ולהדפיס את התוצאה לפלט רגיל. תוכל גם להשתמש בפקודה זו להסרת תווים ממחרוזת.
לצורכי הדגמה, נשתמש במחרוזת לדוגמא ולאחר מכן נצמיד אותה לפקודת החיתוך.
הסר את התו הראשון מהמחרוזת
כדי להסיר את התו הראשון מהמחרוזת, שלום מה שלומך? הפקודה תהיה:
$זרק 'שלום מה שלומך?' | גזירה -ג 2-פקודה זו תדפיס את המחרוזת, המתחילה בתו השני, תוך הסרת התו הראשון.
הסר את ארבע התווים הראשונים מהמחרוזת
כדי להסיר את ארבעת התווים הראשונים מהמחרוזת שלום מה שלומך? הפקודה תהיה:
$זרק 'שלום מה שלומך?' | גזירה -ג 5-פקודה זו תדפיס את המחרוזת, החל מהתו החמישי, תוך הסרת ארבעת התווים הראשונים.
מחרוזת הדפסה בין תווים 2 לחמישית
להדפסת המחרוזת שלום מה שלומך? בין הדמויות השנייה לחמישית , הפקודה תהיה:
$זרק 'שלום מה שלומך?' | גזירה -ג 2-5פקודה זו תדפיס את המחרוזת, החל מהתו השני ועד התו החמישי, תוך הסרת תווי ההתחלה והסיום הנותרים.
הסר את התו האחרון מהמחרוזת
כדי להסיר את התו האחרון מהמחרוזת שלום מה שלומך? להשתמש ב גזירה פקודה עם לְהַאִיץ , כדלהלן:
$זרק 'שלום מה שלומך?' | לְהַאִיץ | גזירה -c2- | לְהַאִיץפקודה זו פועלת על ידי תחילת היפוך המחרוזת, לאחר מכן חיתוך התו הראשון, ולבסוף היפוךו מחדש כדי לתת לך את הפלט הרצוי.
הסר את ארבעת התווים האחרונים מהמחרוזת
כדי להסיר את ארבעת התווים האחרונים מהשורה שלום מה שלומך? הפקודה תהיה:
$זרק 'שלום מה שלומך?' | לְהַאִיץ | גזירה -c5- | לְהַאִיץפקודה זו פועלת על ידי תחילה היפוך המחרוזת, לאחר מכן חיתוך של ארבעת התווים הראשונים, ולאחר מכן הפיכתה שוב כדי לתת לך את הפלט הרצוי.
הסר את התווים הראשונים והאחרונים מהמחרוזת
להסרת התווים הראשונים והאחרונים מהמחרוזת שלום מה שלומך? להשתמש ב גזירה פקודה עם לְהַאִיץ , כדלהלן:
$זרק 'שלום עולם!' | גזירה -c2- | לְהַאִיץ | גזירה -c2- |לְהַאִיץפקודה זו פועלת על ידי חיתוך התו הראשון, לאחר מכן היפוך המחרוזת וחיתוך התו הראשון ולאחר מכן הפיכתו שוב כדי לתת לך את הפלט הרצוי.
הסר תו מהמחרוזת באמצעות tr
הפקודה tr (קיצור של תרגום) משמשת לתרגום, סחיטה ומחיקה של תווים ממחרוזת. תוכל גם להשתמש ב- tr כדי להסיר תווים ממחרוזת.
למטרות הדגמה, נשתמש במחרוזת לדוגמא ולאחר מכן נצמיד אותה לפקודת tr.
הסר את כל מופעי הדמות
באמצעות הפקודה tr, תוכל להסיר את כל המופעים של אותיות קטנות או רישיות מהמחרוזת. לדוגמה, כדי להסיר את כל המופעים של התו האות 'h' מהמחרוזת, הפקודה תהיה:
$זרק 'שלום מה שלומך?' | NS -dח
באופן דומה, כדי להסיר את כל המופעים של התו האות 'H' מהמחרוזת, הפקודה תהיה:
$זרק 'שלום מה שלומך?' | NS -dחתוכל גם להשתמש ברצפים מפורשים להסרת אותיות קטנות או רישיות:
$זרק 'שלום מה שלומך?'| NS -d [:עֶלִיוֹן:]$זרק 'שלום מה שלומך?'| NS -d [:נמוך יותר:]
הסר את כל המופעים של אותיות קטנות וקטנות
באפשרותך גם להסיר את כל המופעים של תווים קטנים כאותיים מהמחרוזת. לדוגמה, הפקודה הבאה תסיר את כל המופעים של התו 'h', הן באותיות קטנות והן באותיות גדולות.
$זרק 'שלום מה שלומך?' | NS -d'ח'
הסר את כל מופעי הדמויות בטווח ספציפי
כדי להסיר את כל מופעי התווים ממחרוזת בטווח הספציפי 'd-h', הפקודה תהיה:
$זרק 'שלום מה שלומך?' | NS -d 'd-h'פקודה זו תסיר את כל התווים בטווח 'd-h' (d, e, f, g, h) במחרוזת.
סיכום
בלינוקס תמיד תהיה יותר מדרך אחת לבצע עבודה פשוטה. אותו דבר לגבי הסרת תווים ממחרוזת. מאמר זה הראה לך ארבע דרכים שונות לעשות זאת, יחד עם כמה דוגמאות להסרת תווים לא רצויים ממחרוזת. ההחלטה באיזה כלי להשתמש תלויה בהעדפותיך ובעיקר במה שאתה רוצה להשיג.