sed הפקודה להחליף מחרוזת בקובץ

Sed Command Replace String File



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

הערה: נשתמש ב- Linux Mint 20 להדגמת השימוש בפקודה sed להחלפת מחרוזת בקובץ. תוכל גם להשתמש בכל טעם אחר של לינוקס אם תרצה בכך.







שימוש בפקודה sed:

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



יצירת קובץ טקסט להדגמה:

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



לחץ על סמל מנהל הקבצים הממוקם בשורת המשימות של Linux Mint 20:





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



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

כעת הפעל את הטרמינל ב- Linux Mint 20 כפי שמוצג בתמונה הבאה:

לאחר השקת הטרמינל ב- Linux Mint 20, תוכל לעבור על כל הדוגמאות המוזכרות להלן אחת אחת.

שימוש בפקודה sed להחלפת כל המופעים של מילה נתונה:

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

$sed'S/sed/FindWord/ReplaceWord/'File.txt

כאן עליך להחליף את FindWord במילה שברצונך להחליף ולהחליף את WordWord במילה להחלפה. יתר על כן, עליך גם להחליף את הקובץ בשם הקובץ שבו ברצונך לבצע החלפות אלה. בתרחיש זה, החלפתי את FindWord ב- sed ו- ReplaceWord ב- Replace. שם הקובץ שלנו היה sed.txt. הוא מוצג גם בתמונה הבאה:

הביצוע המוצלח של פקודה זו יראה לך את השינויים שחלו עקב הפעלת פקודה זו במסוף שלך:

שימוש בפקודה sed להחלפת המופע ה- n של מילה נתונה בכל שורה:

התרחיש לעיל היה תרחיש ההחלפה הפשוט ביותר, אולם לעיתים אינך רוצה להחליף את כל המופעים של מילה אלא אתה רוצה להחליף רק את המופע הראשון, השני או ה- n של אותה מילה בכל השורות. לשם כך, תוכל לבצע את הפקודה הבאה:

$sed'S/FindWord/ReplaceWord/num 'file.txt

כאן עליך להחליף את FindWord במילה שברצונך להחליף ולהחליף את WordWord במילה להחלפה. יתר על כן, עליך גם להחליף את הקובץ בשם הקובץ שבו ברצונך לבצע החלפות אלה. בתרחיש זה, החלפתי את FindWord Replace ו- ReplaceWord ב- sed. שם הקובץ שלנו היה sed.txt. כמו כן, num מתייחס להתרחשות או למיקום של המילה להחלפה. בדוגמה המוצגת, אני רוצה להחליף את המופע הראשון של החלפת עם סד בכל שורה כפי שמוצג בתמונה למטה:

הביצוע המוצלח של פקודה זו יראה לך את השינויים שחלו עקב הפעלת פקודה זו במסוף שלך:

שימוש בפקודה sed להחלפת מילה נתונה בשורה ספציפית:

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

$sed'LineNum s/FindWord/ReplaceWord/'File.txt

כאן עליך להחליף את FindWord במילה שברצונך להחליף ולהחליף את WordWord במילה להחלפה. יתר על כן, עליך גם להחליף את הקובץ בשם הקובץ שבו ברצונך לבצע החלפות אלה. בתרחיש זה, החלפתי את FindWord sed ואת ReplaceWord ב- Replace. שם הקובץ שלנו היה sed.txt. כמו כן, עליך להחליף את LineNum במספר השורה של השורה המסוימת שבה ברצונך לבצע את ההחלפה. בדוגמה זו, רצינו להחליף sed עם להחליף בשורה מספר 2 של הקובץ שלנו כפי שמוצג בתמונה הבאה:

הביצוע המוצלח של פקודה זו יראה לך את השינויים שחלו עקב הפעלת פקודה זו במסוף שלך. תוכל לוודא בקלות שהשינויים האמורים התרחשו רק בשורה מספר 2 של הקובץ שלנו ולא בטקסט כולו.

סיכום:

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