כיצד למחוק שורות ספציפיות מקובץ באמצעות sed

בהזדמנויות מסוימות עלינו למחוק שורה ספציפית מקובץ או מספר, למשל, קרה לי שהייתה לי רשימה שלמה של קבצים ואני צריך למחוק את שורה מס '27 מכל אלה (שורה מס' 27 היא של ACL , נורמה, כלל, תצורה), אני יכול לערוך קובץ לפי קובץ או פשוט להשיג את מה שאני צריך באמצעות הפקודה צמא וסקריפט bash (אופציונלי).

אבל, בואו ננסה קובץ בודד פשוט למדי.

יש לנו את הקובץ distros-deb.txt המכיל את זה:

דביאן

קובונטו

ארכינוס

פתרונות

נענע

במילים אחרות, הקובץ distros-deb.txt הוא בו אנו מכניסים את ההפצות מבוססות דביאן, אך שם אנו רואים כי בשורה מס '3 "ארכלינוקס", הפצה שברור שאין לה שום קשר לדביאן, ולכן עלינו לבטל את הקו הזה. כדי לחסל את שורה מס '3 של אותו קובץ, נניח את הדברים הבאים:

sed "3d" distros-deb.txt > distros-deb-ok.txt

להסביר את השורה הזו קל מעט, עם צמא "3d" אנו מציינים כי נמחק שורה שורה 3 עם distros-deb.txt אנו מציינים על איזה קובץ לעבוד, כלומר, מחק את שורה מס '3 של הקובץ הזה, עד כאן אם אנו לוחצים על Enter זה יראה לנו מה אנחנו רוצים אבל במסוף, אז עם > distros-deb-ok.txt אנו מציינים שבמקום להציג את התוצאה במסוף, הוא שם אותה בקובץ בשם זה.

מה פשוט?

כמו כן, אנו יכולים להימנע משימוש ב- > distros-deb-ok.txt באמצעות פרמטר ראוי של צמא, הפרמטר -i

כלומר, במקרה שנרצה למחוק את השורה מהקובץ ולשמור אותה עם אותו שם (ולא בקובץ אחר), פשוט הוסף את הפרמטר -i :

sed -i "3d" distros-deb.txt

פעולה זו תסיר את שורה מס '3 מ- distros-deb.txt ותשמור אותה.

מה אם אני רוצה טווח של שורות, כלומר להסיר את השורה מספר 3 אבל גם את המס '4 ואת מספר 5? כדי להשיג זאת שמנו את הטווח שבין 3 ל -5, כלומר:

sed -i "3,5d" distros-deb.txt

וזה יראה לי רק דביאן וקובונטו 

אז מה אם אני רוצה למחוק משורה 2 לשורה האחרונה, כשאני לא יודע את כל השורות?

פשוט השתמש בסמל הדולר - »$

sed -i "2,$d" distros-deb.txt

במקרה שתרצה לבטל מהשורה הראשונה למספר 4 אז פשוט שמנו את הערך 1 בהתחלה:

sed -i "1,4d" distros-deb.txt

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

לגבי


הוסף כמקור מועדף בגוגל