כיצד להחליף מחרוזת בקובץ ב- Bash

How Replace String File Bash



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

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 להחלפת מחרוזות מסוימות בקובץ. המשימה להחליף מחרוזת בקובץ אמורה להיות קלה יותר עבורך לאחר תרגול הדוגמאות שלעיל.