כיצד להשתמש ב-Sed בלינוקס

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

סוג זה של עורך טקסט יכול להיות מסווג גם כעורך טקסט לא אינטראקטיבי.

תן לנו לראות כמה אפשרויות נפוצות לעריכת קבצים באמצעות Sed. ניקח את הקובץ הבא כדוגמה:

$: cat test.txt כלב חום מהיר קפץ מעל החתול העצלן. מערכת הפעלה לינוקס. ביער הקרוב למקום שלי יש חתול וגם זאבים. 

חפש והחלף

כדי לחפש מחרוזת בקובץ ולהחליף במחרוזת אחרת, הרץ:

sed -i "s/cat/fox/g" test.txt

הנה ה -אני flag מורה ל-sed לכתוב את השינויים בקובץ. בלי הדגל הזה, sed רק יציג את הקובץ עם המחרוזת שהשתנתה.

במרכאות, יש לנו s/cat/fox/g. ה ס מיועד לפיקוד החיפוש והחלפה של sed. אז יש לנו את המחרוזת שיש לחפש, כלומר חתול. ואז המחרוזת שבה תחליף אותה, כלומר, שׁוּעָל. לבסוף, יש לנו את האופציונלי ז, אשר מורה sed כדי להחליף את כל המופעים בכל שורות הקובץ. בלי ה ז, sed יחליף רק את המופע הראשון של חתול על כל שורה.

ניתן להשתמש גם כאן ב-Regex.

sed -i "s/f[a-z]*\./cat\./g"

לְהַכנִיס

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

sed -i "/cat/i Start:" test.txt

כאן, חתול היא מחרוזת החיפוש ו הַתחָלָה: היא המחרוזת שיש להזין לפני השורה שבה נמצא המחרוזת המבוקשת.

באופן דומה, כדי להוסיף טקסט אחרי שורה, השתמש ב:

sed -i "/fox/a End." test.txt

לִמְחוֹק

כדי למחוק שורה המכילה מחרוזת משנה, השתמש ב:

sed -i "/Linux/d" test.txt

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

sed -i '1d' test.txt

שילוב של מספר פונקציות

כדי לשלב מספר פונקציות, למשל. חפש והחלף, מחק, בפקודה אחת, ניתן להשתמש בדגל.

sed -i -e "s/fox/cat/g" -e '2d' test.txt

? לחיים!