חיפשתם אופן נוסף לבצע פעולות עריכה על טקסטים? אל תחפשו יותר! במדריך הזה תמצאו דוגמאות לשימוש בסד, שבהן ייתן פתרונות.
בקצרה, סד מאפשר לך לבצע מגוון רחב של עריכות על קבצים וזרמים של טקסט בדרך לא אינטראקטיבית. אתה עושה את ההחלטות לעריכה כאשר אתה קורא את הפקודות. ובמדריך זה, תלמד כיצד להשתמש בפקודות הסד ולשפר באופן אפקטיבי את זרימת העבודה שלך.
המשך לקרוא ולהעלות את המיומנויות שלך בשורת הפקודה!
דרישות מוקדמות
ודא שיש לך את הבאים לעקוב אחרי הדגמה בפועל במדריך זה:
- A command line interface (e.g., Terminal on macOS or Linux) – This tutorial uses Ubuntu Linux 20.04, but the commands should work on most popular operating systems.
- A text editor (e.g., nano, vi, or Sublime Text) – This tutorial uses Nano.
התקנת sed על אובונטו
סד נכלל ככלי סטנדרטי ברוב מערכות ההפעלה שדומות ליוניקס, כולל לינוקס ו־macOS. אך למרות זאת, כדאי לבדוק שאתה כבר מחזיק את sed במערכת שלך וזה תהליך בסיסי לפני ביצוע המרה של טקסט.
1. פתח את הטרמינל שלך, והרץ את הפקודה sed
הבאה כדי לבדוק איזה גרסת sed מותקנת במערכת שלך.
אם sed מותקן, תראה את מספר הגרסה של sed ומידע נוסף על הבנייה, כפי שמוצג למטה.

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

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

3. לבסוף, הרץ את הפקודה הבאה כדי לוודא שפקודת sed
מותקנת במערכת שלך.
פקודה זו מדפיסה את הנתיב המלא לביצועי ה-sed, שבדוגמא זו הוא /usr/bin/sed.
לאחר שהתקנת sed ווידאת שהוא ב- PATH שלך, תוכל להשתמש בפקודת sed
לביצוע שונות של המרות טקסט ושינויים.

החלפת מחרוזות בקובץ טקסט
sed הוא עורך זרם פופולרי הזמין ברוב מערכות ההפעלה שדומות ל-Unix, ואחת מתכונותיו השימושיות ביותר היא החלפת מחרוזות בקובץ טקסט.
למטה מצוגת כמה תרחישים, אך לא מוגבלים לכך, בהם החלפת מחרוזות היא מועילה:
- עדכון של רשימת כתובות URL כך שתשקף שם דומיין חדש.
- שינוי מזההי מוצרים במסד נתונים או קובץ CSV.
- עיצוב נתונים לייבוא למערכת אחרת ועוד רבים אחרים.
התחברות בסיסית לשימוש ב־sed היא כדלקמן, היכן:
Placeholder | Function |
---|---|
command | Controls sed’s behavior. |
options | Allows you to customize the behavior of the sed command |
input_file | Specifies the file or text stream that you want to edit. Typically, you can specify a single file or stream, but concatenating multiple files or streams by redirection also works. |
output_file | Specifies the file that contains the results of your sed command. The file can be new or the same as input_file, depending on how you use sed. |
נניח שיש לך קובץ טקסט בשם urls.txt
המכיל רשימת URLים וברצונך לעדכן את כל ה-URLים כך שישתמשו בשם דומיין חדש.
1. הפעל את פקודות ה־echo
למטה כדי ליצור את קובץ ה־urls.txt
בתיקייה הנוכחית. פקודות אלו לא מספקות פלט אך כותבות טקסטים מסוימים לקובץ.
2. לאחר מכן, הפעל את פקודת ה־cat
כדי להציג את תוכן קובץ ה־urls.txt. cat urls.txt
הפלט למטה מאשר את שלושת ה-URLים הישנים שנכתבו בקובץ ה־urls.txt.

3. כעת, הפעל את הפקודה למטה כדי למצוא ולהחליף (s
) את כל הופעות המחרוזת old-domain.com
ב־new-domain.com
בקובץ ה־urls.txt
.
תראה שה-URLים בקובץ הקלט שלך עודכנו עם הדומיין החדש, כפי שמוצג.

החלפת הופעות N של מחרוזת
בנוסף לפונקציות הסינון והחלפה הבסיסיות, יש ל-sed פקודות מובנות נוספות שמאפשרות ביצוע המרות טקסט מורכבות יותר. דוגמה לכך היא החלפת ההופעה ה־n של מחרוזת התבנית בשורת טקסט בודדת.
לדוגמה, אם ברצונך לעדכן את השדה השני בקובץ CSV בערך חדש או לעדכן את הופעה השלישית של מחרוזת בהזרמת מסד נתונים.
התחביר הבסיסי לפקודה זו הוא כזה:
pattern
– המחרוזת להחלפה.replacement
– המחרוזת לשימוש כהחלפה.n
– is the nth occurrence of the string to replace (e.g.,1
=first occurrence,2
=second occurrence…).
כדי לראות כיצד להחליף את המופע ה-nth של מחרוזת, עקוב אחר השלבים האלה:
הפעל את הפקודה echo
הבאה כדי ליצור שורת טקסט עם שלושה מופעים של התבנית quick
. הפקודה sed
אז מחליפה (s
) את המופע השני (2
) של התבנית quick
עם המחרוזת fast
.
כפי שניתן לראות למטה, רק המופע השני של התבנית quick הוחלף במחרוזת fast, בעוד שכל המופעים האחרים נשארו ללא שינוי.
הפקודה nth
היא רגילה לקפיטל ולאותיות קטנות כברירת מחדל. כתוצאה מכך, הפקודה מחפשת רק אחר התאמה מדויקת של התבנית. כדי להתעלם מהקפיטליזציה של התבנית, עבור לשלב הבא.

? שים לב שהפקודה
nth
סופרת את המופעים של התבנית משמאל לימין. בנוסף, הפקודהnth
פועלת רק על שורת טקסט אחת. כדי לבצע החלפה על מספר רב של שורות, השתמש בשיטה שונה המודגמת בסעיף הבא.
באופן נוסף, הריץ את הפקודה הבאה כדי להחליף את המופע השני (2
) של התבנית quick
במחרוזת fast
תוך התעלמות (i
) מהקפיטליזציה.
האפשרות i
מועילה כאשר עובדים עם טקסט שבו אין קפיטליזציה עקבית.
בתוך הפלט למטה, המופע השני של המילה המהירה (מהיר) מוחלף בהצלחה עם המחרוזת מהיר – בלתי תלוי באותיות הקטנות או הגדולות.

מחליף את כל המופעים של תבנית/מחרוזת תואמת
במקום להחליף את ההופעה ה-n של מחרוזת, אולי תתכנן להחליף את כל ההופעות שלה. עשיית זאת מסייעת באופן משמעותי עם התוכנית שלך לעדכן בכמות גדולה כל הופעה של מחרוזת זכויות יוצרים עם השנה הנוכחית, לדוגמה.
1. צור קובץ בשם input.txt עם תוכן הבא בעורך טקסט המועדף עליך.
This is a quick test.
The quick brown fox jumps over the lazy dog.
Quick, you need to finish this task before it gets too late.
2. לאחר מכן, הרץ את הפקודה הבאה כדי להחליף (s
) את כל הופעות המילה מהיר
במילה מהיר
מתוך הקובץ input.txt
. לאחר ההחלפה, השינויים נכתבים לקובץ output.txt
.
3. עכשיו, הרץ את הפקודה למטה כדי לצפות בתוכן הקובץ output.txt
ולוודא אם ההחלפה נעשתה.
תראה שכל הופעות המילה מהיר הוחלפו במילה מהיר, כפי שמוצג למטה. כדי לעשות החלפות לפי מיקום, הפקודה g
רגישה לאותיות ומחליפה רק התאמות מדויקות.
המחרוזת מהיר לא תיחלף, כפי שמוצג למטה, אבל תוכל להשתמש באפשרות i
כדי לבצע החלפות בלא תלות ברישיון.

החלפת מתאם מחרוזת על שורה מסוימת
אולי כבר ידעת לאיזה שורה במחרוזת את רוצה להחליף המילה. למה להחליף את כל הופעות אם ניתן להחליף מחרוזות בשורות ספציפיות? התכונה הזו שימושית כאשר אתה רוצה לבצע שינויים רק בשורה מסוימת בקובץ או זרם ולהשאיר את שאר השורות ללא שינוי.
למטה יש התחביר להחלפת מחרוזת משורה ספציפית, כאשר n
מייצג את מספר השורה.
1. צור קובץ בשם myfile.txt והכנס לתוכו את התוכן הבא.
test1
test2
test3
2. לאחר מכן, הרץ את הפקודה sed
לביצוע השלבים הבאים:
- חפש את המילה
test2
מהשורה השנייה (2
) של קובץmyfile.txt
. החלף (s
) את המילהtest2
במילהtest2_changed
. כתוב את השינויים (>
) לקובץ חדש בשםmyfile_changed.txt
.
This command does not provide output to the terminal since the changes are written to a new file. But you will verify the changes in the following step.
3. לבסוף, הרץ את פקודת ה-cat
הבאה כדי להציג את תוכן קובץ myfile_changed.txt
.
כפי שאתה יכול לראות למטה, השורה השנייה של קובץ myfile.txt הוחלפה ב-test2_changed, בעוד שכל שאר השורות נשמרו ללא שינוי.

הפלט של שורות המחרוזות ששונו באופן בלעדי
במקום להדפיס את כל התוכן של קובץ לאחר ביצוע שינויים, ייתכן שתרצה להדפיס רק את השורות ששונו באופן בלעדי. איך? על ידי שימוש בדגל p
יחד עם אפשרות -n
.
למטה התחביר להדפסת שורות מחרוזות ששונו באופן בלעדי, כאשר:
- אפשרות
-n
אומרת ל-sed
להפסיק את ההתנהגות ברירת המחדל של הדפסת כל שורה. - הדגל
p
אומר ל־sed
להדפיס את תוצאת הפקודה.
פתח את קובץ myfile.txt שלך והחלף את התוכן בהתאם למטה. שים לב שהשורה השנייה אינה נכונה מאחר והמילה first
צריכה להיות second
.
This is the first line of my file.
This is the first line of my file.
This is the third line of my file.
כעת, הפעל את הפקודה של sed
להחלפת המחרוזת first
ב־second
בשורה השנייה (2
) של myfile.txt
, אך הדפס רק את השורות המשונות (p
).
תראה את תוצאת השורה השנייה המשונת רק בטרמינל שלך, כפי שמוצג למטה.

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