Bash הסר תווים אחרונים x מהמחרוזת

Bash Remove Last X Characters From String



לפעמים צריך למחוק אותיות משני מחרוזות. בדיוק מה שהמקרה עשוי להיות, לינוקס כוללת כמה כלים שימושיים מובנים להסרת אותיות היוצרות טקסט כזה ב- Bash. מאמר זה מדגים כיצד למחוק אותיות מכל מחרוזת בשיטות אלה. בפוסט זה, ההוראות הופעלו על אובוס 20.04 מוקד Fossa. אותן הוראות עשויות להיות מופעלות בכל מערכת לינוקס שמותקנת בה כלי השירות שהוזכרו לעיל. כדי לבצע את ההוראות, נשתמש במסוף הרגיל. קיצור המקשים Ctrl+Alt+T יפתח את כלי הטרמינל.

שיטה 01: דרך מחרוזת

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









מכיוון שהקובץ נוצר במהירות בתיקיית הבית של אובונטו 20.04, פתח אותו בעורך כלשהו לעריכה. לכן, אנו בוחרים בעורך GNU כדי לפתוח את מסמך file.sh כמפורט להלן.







העתיקו בו את הקוד המוצג להלן. קוד זה מכיל סיומת bash בהתחלה, ולאחר מכן הכרזנו על משתנה מחרוזת val עם ערך מחרוזת. בשורה השנייה אנו משתמשים בביטוי ההד כדי להציג משתנה זה במסוף. המשימה האמיתית מתחילה מכאן. אתחלנו משתנה חדש והקצנו לו ערך שהוא מחרוזת משנה של המשתנה המקורי. עשינו את זה על ידי אזכור -14 בסדים לאחר נקודתיים כפולים. זה אומר למהדר שעליו להסיר את 14 האותיות האחרונות מהמחרוזת המקורית FirstWorldCountries. שאר האותיות יישמרו במשתנה החדש. בשורה האחרונה, ההד שימש להדפסת המשתנה החדש חדש.



הביצוע הנכון של קובץ file.sh באמצעות הפקודה bash יוצא כצפוי. ראשית, הוא מציג את הערך של משתנה המחרוזת הראשון, ולאחר מכן הוא מציג את הערך של המחרוזת החדשה שנוצרה ממשתנה ראשון לפי הפלט המוצג.

שיטה 02: שימוש בסמלים מיוחדים

שיטה פשוטה וקלה נוספת להסרת האותיות או התווים האחרונים מכל מחרוזת היא באמצעות הסמלים או התווים המיוחדים, למשל, סימני אחוזים וסימני שאלה. לכן, הפעם נשתמש באחוזים וסימן שאלה כדי להסיר את התווים מכל מחרוזת. מכאן שכבר פתחנו את אותו קובץ לעדכון סקריפט bash באמצעות עורך GNU Nano. הקוד הכולל זהה, אך החלק החדש המשתנה מעט שונה. השתמשנו בסימן אחוזים כדי להודיע ​​למערכת כי המספרים המוזכרים של סימני שאלה מייצגים את מספר התווים מתוך ערך משתנה שיש להסיר לאחר סימן האחוז הזה. אתה יכול לראות שהוספנו 9 סמלים של סימני שאלה. המשמעות היא ש -9 התווים האחרונים מהמחרוזת FirstWorldCountries יוסרו, והמחרוזת הנותרת תהיה FirstWorld. המחרוזת הנותרת תישמר לאחר מכן במשתנה חדש.

כאשר ביצענו את קובץ bash המעודכן, הפלט מגיע כצפוי. הוא מציג את המחרוזת המקורית מהמשתנה הראשון ואת הערך של המשתנה השני, החדש שנוצר מהמשתנה val.

שיטה 03: שימוש ב- Sed

Sed הוא כלי שימושי ויעיל לשינוי רצפי טקסט. זוהי סביבת פיתוח לא אינטראקטיבית המאפשרת לך לעבוד עם קלט נתונים ולעשות טרנספורמציות טקסט פשוטות. תוכל גם להשתמש ב- sed כדי למחוק אותיות מטקסטים שאינך רוצה. נשתמש במחרוזת דוגמה וננתב אותה לפקודת sed למטרות המחשה. אתה יכול למחוק דמות מסוימת ממחרוזת כלשהי עם sed. לכן, השתמשנו בשורה הפשוטה של ​​מחרוזת בתוך משפט ההד. השתמשנו ב- sed כדי להסיר את האות A מהמחרוזת המוזכרת. הקפד לעקוב אחר התחביר 's/string_to_be_removed //'. הפלט מראה שהאות A הוסרה.

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

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

שיטה 04: שימוש ב- Awk

Awk היא שפת סקריפטים מתוחכמת שניתן להשתמש בה להתאמת דפוסים ועיבוד טקסטים. תוכל להשתמש ב- Awk כדי לשנות ולשנות קלט במגוון דרכים שונות. תוכל גם למחוק אותיות ממחרוזות באמצעות awk. Awk נראה קצת שונה מ sed. הפעם שינינו את המחרוזת עם Aqsa Yasin. הפונקציה awk תייצר מחרוזת משנה באמצעות שיטת הסאב ותדפיס אותה במסוף. אורך הפונקציה שימש להדגמת מספר האותיות שהוסרו מהמחרוזת המוזכרת. כאן אורך ($ 0) -5 פירושו להסיר את 5 התווים האחרונים של מחרוזת, והיתר יהיה חלק ממחרוז משנה להדפסה.

ניסינו להסיר את 9 התווים האחרונים ממחרוזת Aqsa Yasin וקיבלנו A כמחרוזת הפלט.

שיטה 05: שימוש בגזירה

Cut נראה כלי עזר לשורת הפקודה לחילוץ פיסת טקסט מביטוי או מסמך כזה והדפסתו לפלט סטנדרטי. ניתן להשתמש בפעולה זו גם להסרת אותיות ממחרוזת כלשהי. נשתמש בביטוי לדוגמא ונעביר אותו להוראת החיתוך למטרות בדיקה. אז השתמשנו בביטוי Aqsa Yasin והעברנו אותו לשאילתת החיתוך. לאחר הדגל –c, הגדרנו את טווח האינדקסים של מחרוזת לחיתוך התווים ממחרוזת שהוזכרה. הוא יציג את התווים מאינדקס 1 עד אינדקס 5. אינדקס 5 לא נכלל כאן. הפלט מציג את 4 התווים הראשונים כ- Aqsa.

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

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

סיכום:

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