Sales.txt
אזור סכום תאריך
01/01/2020 2020 60000 דאקה
10/02/2020 76000 Rajshahi
21/03/2020 54000 ח'ולנה
15/04/2020 78000 צ'אנדפור
17/05/2020 45000 בוגר
02/06/2020 67000 קומילה
החלף מחרוזת בקובץ בפקודה `sed`
התחביר הבסיסי של ה sed `הפקודה להחלפת המחרוזת המסוימת בקובץ ניתנת להלן.
תחביר
sed -אני 's/search_string/replace_string/'שם קובץ
כל חלק בתחביר לעיל מוסבר להלן.
'-אני' האפשרות משמשת לשינוי תוכן הקובץ המקורי עם מחרוזת החלפה אם מחרוזת החיפוש קיימת בקובץ.
'S' מציין את הפקודה החלופית.
'מחרוזת_חיפוש' מכיל את ערך המחרוזת שייחפש בקובץ להחלפה.
'מחליף_מחרוזת' מכיל את ערך המחרוזת שישמש להחלפת תוכן הקובץ התואם את 'מחרוזת_חיפוש' ערך.
'שם קובץ' מכיל את שם הקובץ שבו יחולו החיפוש וההחלפה.
דוגמה 1: החלף את הקובץ בפקודה 'sed'
בתסריט הבא הטקסט 'חיפוש והחלפה' יילקח מהמשתמש. אם מחרוזת החיפוש קיימת ב- 'Sales.txt', היא תוחלף במחרוזת ההחלפה. כאן יתבצע חיפוש תלוי רישיות.
#!/bin/bash# הקצה את שם הקובץ
שם קובץ='Sales.txt'
# קח את מחרוזת החיפוש
לקרוא -p 'הזן את מחרוזת החיפוש:'לחפש
# קח את מחרוזת ההחלפה
לקרוא -p 'הזן את מחרוזת ההחלפה:'החלף
אם [[ $ חיפוש !='' && $ להחליף !='' ]];לאחר מכן
sed -אני 's/$ חיפוש/$ להחליף/ ' $ קובץ
לִהיוֹת
תְפוּקָה
דוגמה 2: החלף את הקובץ בפקודה 'sed' ב- 'g' ו- 'i' Flag
הסקריפט הבא יעבוד כמו הדוגמה הקודמת, אך מחרוזת החיפוש תחפש ברחבי העולם את דגל ה- g, והחיפוש חסר רישיות יעשה את הדגל 'i'.
#!/bin/bash# קח את מחרוזת החיפוש
לקרוא -p 'הזן את מחרוזת החיפוש:'לחפש
# קח את מחרוזת ההחלפה
לקרוא -p 'הזן את מחרוזת ההחלפה:'החלף
אם [[ $ חיפוש !='' && $ להחליף !='' ]];לאחר מכן
sed -אני 's/$ חיפוש/$ להחליף/לָתֵת' $ 1
לִהיוֹת
תְפוּקָה
דוגמה 3: החלף את הקובץ בתבנית הפקודה 'sed' והתאמת ספרות תואמות
התסריט הבא יחפש את כל התוכן המספרי בקובץ ויחליף את התוכן על ידי הוספת '$' סמל בתחילת המספרים.
#!/bin/bash# בדוק שערך הארגומנט של שורת הפקודה קיים או לא
אם [ $ 1 !='' ];לאחר מכן
# חפש בכל המחרוזת המכילה ספרות והוסף $
sed -אני 's/ b [0-9] {5 } b/$ &/g' $ 1
לִהיוֹת
תְפוּקָה
החלף מחרוזת בקובץ בפקודה 'awk'
ה ' אוו ' פקודה היא דרך נוספת להחליף את המחרוזת בקובץ, אך פקודה זו אינה יכולה לעדכן את הקובץ המקורי ישירות כמו ' אבל פקודה.
דוגמה 4: החלף את הקובץ בפקודה 'awk'
התסריט הבא יאחסן את התוכן המעודכן ב- temp.txt קובץ ששם הקובץ המקורי ישנה את שמו.
#!/bin/bash# בדוק שערך הארגומנט של שורת הפקודה קיים או לא
אם [ $ 1 !='' ];לאחר מכן
# חפש בכל המחרוזת לפי תאריך
awk '{משנה ('02/06/2020', '12/06/2020')} 1 ' $ 1 >temp.txt&& mvtemp.txt$ 1
לִהיוֹת
תְפוּקָה
סיכום
מאמר זה הראה לך כיצד להשתמש בסקריפטים bash להחלפת מחרוזות מסוימות בקובץ. המשימה להחליף מחרוזת בקובץ אמורה להיות קלה יותר עבורך לאחר תרגול הדוגמאות שלעיל.