מה זה SED ב- Linux וכיצד אתה משתמש בו?
sed מייצג את tream ed itor והוא משמש נפוץ הפקודה לינוקס / יוניקס. השם בא מתמונה של שתי המילים האלה. זה לא עורך טקסט, אם כי הוא משנה טקסט. במקום זאת, sed מקבל קלט טקסט כ"זרם "ועורך את הזרם בהתאם להנחיות שלך.
על פי רוב, אנשים משתמשים sed
בתור שורת הפקודה גרסה למצוא ולהחליף. הפקודה הראשית בתוכנית משמשת להחליף מחרוזת תו אחת עבור אחר. זה עושה את זה שימושי עבור הפעלת חיפוש ולהחליף פונקציות על אצווה של קבצים, אבל זה לא קל לשימוש כמו משהו מתוך פנקס רשימות או Word. תגלה כי התחביר לוקח קצת להתרגל, אבל ברגע שיש לך את זה למטה, תראה כמה חזק מאוד זה עורך קומפקטי יכול להיות.
שימוש sed עבור החלפת
כדי להשתמש sed, תצטרך לפתוח חלון טרמינל. הפקודה מופעלת עם sed
, אבל להקליד את זה לבד לא עושה שום דבר. אתה צריך לספק את אחד הפקודות, כמו גם כמה פרמטרים.
הפרמטר הנפוץ ביותר הוא תחליף, או s
. פקודה פשוטה החלפת sed
נראה משהו כמו הבא:
sed / חתול / כלב / '
פקודה זו תזמין לסרוק טקסט נכנס ולהחליף כל מופע של מחרוזת "חתול" עם "כלב". כדי להדגים, נשתמש בפקודה echo
כדי לתת משהו לעבוד איתו.
הד קטפולטה sed / חתול / כלב / '
ישנם שלושה חלקים עיקריים הפקודה sed. ראשית, יש sed
אשר מתחיל את התוכנית. אז יש את s
אשר מתחיל את הפקודה תחליף. הקו נטוי הקדמי /
הוא מפריד. מחרוזת לאחר מכן יהיה מחרוזת sed מחפש. מחרוזת לאחר קו נטוי השני יהיה תווים תחליף כי כתב לזרם. הסלאש הסופי סוגר את הפקודה. הכל ביחד, זה 's/text-to-find/text-to-replace/'
.
הערה ציטוטים בודדים בדוגמה זו. ציטוטים בודדים מאפשרים לך להשתמש בתווים meta בפקודה שלך. בעוד ציטוטים אינם חיוניים עבור רוב הדוגמאות שלנו, אתה צריך לפתח את ההרגל של שימוש ציטוטים עבור כל הפקודות.
מה לגבי מחרוזות חלקיות? הפקודה הנ"ל תעבוד על כל מראה של "חתול" מחרוזת, גם אם זה חלק ממילה אחרת. לדוגמה, "מעוט" יהפוך "מעוט" כמו "קטמרן" יהפוך "dogamaran".
הד מעוט sed / חתול / כלב / '
תחליף גלובלי
בדוגמה הראשונה שלנו אולי שמתם לב רק את המקרה הראשון של מחרוזת ההתאמה הוחלף. בדומה לכלי עזר רבים של GNU, sed מבוסס על שורה. כתוצאה מכך, היא פועלת רק על המשחק הראשון בתוך שורה. אם יש לך מספר התאמות עבור מחרוזת המועמד שלך בשורה, רק הראשון יהיה שונה. כדי לעשות עבודה sed על כל התרחשות של מחרוזת היעד, השתמש בדגל g
בסוף הפקודה:
sed / cat / dog / g '
זה יפעל כמו בדוגמה הבאה:
הד קטפולטה קטמרן sed / cat / dog / g '
ללא הדגל העולמי, רק המקרה הראשון של "חתול" בכל שורה יוחלף.
הגדרת קובצי קלט ופלט
כברירת מחדל, sed יפעל על קלט רגיל. עם זאת, זה לא שימושי מדי. כדי להפעיל sed על קובץ, ציין את שם הקובץ בסוף הפקודה, כך:
sed / cat / dog / g 'oldfile.txt> newfile.txt
זה יפעל sed על "oldfile.txt" ולשמור את הפלט של הפקודה "newfile.txt." אם "newfile.txt" אינו קיים, זה ייווצר על ידי הפקודה. אם לא תציין קובץ פלט, sed יהיה הד הטקסט החדש של הקובץ לתוך קלט רגיל.
אם ברצונך להחליף את תוכן הקובץ, יהיה עליך להשתמש בדגל - -i
. דגל זה הופך את העריכות "במקום".
sed -i '' 's / cat / dog' oldfile.txt
פקודה זו מחליפה מיד את תוכן קובץ היעד, דבר המסוכן במקצת. כדי להישאר בצד הבטוח, אתה יכול ליצור גיבוי ב- situ.
כדי ליצור גיבוי של הקובץ, לשים תוסף לאחר -i
. זה לא צריך להיות הרחבה פונקציונלית: ".bu" או ".Bak" עבודה בסדר. פעולה זו תיצור קובץ גיבוי עם תוסף.
sed -i.bak 's / cat / dog' oldfile.txt
זה יוצר "oldfile.txt.bak", המכיל את נתוני הטקסט שלא עברו מהגרסה המקורית של "oldfile.txt".
התאמת ביטויים רגולריים
הכוח האמיתי של sed
נובע ביטויי ההתאמה הרגילה. זה מאפשר לך להגדיר תבניות עבור התאמת, ולא מחרוזות מילולי. לדוגמה, אנו יכולים להשתמש במשהו כמו מחרוזת למטה כדי לחזור על כל קבוצה של מספר אחד או יותר:
הד "123 abc" sed '/ [0-9] [0-9] * / & & /'
למידה נוספת
sed הוא כלי רב עוצמה עם עומק של כוח דומה לשפת scripting. כדי ללמוד עוד על יכולות מלא של סד, לבדוק את המדריך המקיף של ברוס ברנט כדי sed.