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

How Replace Multiple Lines Using Sed Command



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

גיליון רמאות 'sed' נפוץ:

התווים הנפוצים ביותר המשמשים בפקודה 'sed' מוסברים בטבלה הבאה.







אופי מַטָרָה
ל הוא משמש להוספת תוכן.
ב הוא משמש להסתעפות של תוכן.
ג הוא משמש לשינוי תוכן.
ד הוא משמש למחיקת שורה של קובץ.
ד הוא משמש למחיקת השורה הראשונה בקובץ.
ז בעבר הוא העתיק מטקסט ההחזקה.
ז הוא משמש להוספת מהטקסט המחזיק.
ח הוא משמש להעתיק בטקסט ההחזקה.
ח הוא משמש לצירוף לטקסט ההחזקה.
אני הוא משמש להכנסה.
אני הוא משמש להדפסת השורה המחליפה.
נ הוא משמש כדי לעבור לשורה הבאה.
נ הוא משמש לצירוף שורת הקלט הבאה.
עמ הוא משמש להדפסה.
פ הוא משמש להדפסת השורה הראשונה.
מה משתמשים בו להפסיק.
ש משתמשים בו להפסיק מיד.
r הוא משמש לקריאת הקובץ.
ר הוא משמש לקריאת השורה מהקובץ.
ש הוא משמש להחליף.
t הוא משמש לבדיקת החלפה.
ט הוא משמש לבדיקה ללא החלפה.
ב הוא משמש לכתיבה לקובץ.
IN הוא משמש לכתיבת שורה לקובץ.
איקס הוא משמש להחלפת דפוסים ולהחזקה.
ו הוא משמש לתרגום.
עם הוא משמש לניקוי הקו.
'=' הוא משמש להדפסת מספר השורה.

החלף מספר שורות באמצעות הפקודה `sed` מהמסוף:

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



sed.txt



הצורה המלאה של sed היא עורך הזרמים.





זהו כלי יוניקס המשמש לקריאה והמרה של הטקסט בפורמט אחר.

הוא פותח על ידי לי א. מקמהון.



הוא משמש לעיבוד טקסט.

הוא תומך בביטויים רגילים.

דוגמה 1: החלף שתי קווים רצופים

הפקודה `sed` הבאה תחליף שתי שורות רצופות בשורה אחרת. כאן, האפשרות -z משמשת להחלפת השורות הרצופות בנתוני null לפני הוספת הטקסט החלופי. על פי הפקודה, 3מחקר ופיתוחו -4השורות הקובץ יוחלפו בטקסט, 'זהו כלי שימושי מאוד' .

$חתולsed.txt
$sed -עם זה/הוא פותח על ידי לי א. מקמהון. n הוא משמש לטקסט
עיבוד./זהו כלי שימושי מאוד.
sed.txt

הפלט הבא יופיע לאחר הפעלת הפקודות.

דוגמה 2: החלף מספר קווים המבוססים על התאמה ודגל גלובלי

הפקודה `sed` הבאה תחליף את כל השורות המתחילות במילה, 'זה' במילה, ' קו זה מוחלף '.

$חתולsed.txt
$sed 's/^זה.*/שורה זו מוחלפת/g'sed.txt

הפלט הבא יופיע לאחר הפעלת הפקודות. שלוש שורות מכילות את המילה ' זה 'בקובץ. לכן, שורות אלה הוחלפו בטקסט החלופי.

דוגמה 3: החלף שורות מרובות על בסיס ההתאמה והפקודה בשורה הבאה

הפקודה 'sed' הבאה תחליף את המילה ' הוא 'במילה,' היה 'עם הפקודה בשורה הבאה,' n '.

$חתולsed.txt
$sed '{n;/is/{s/is/was/}}'sed.txt

הפלט הבא יופיע לאחר הפעלת הפקודות. פה, 'הוא' קיים ב 2ndו -4השורות הקובץ, ושורות אלה משתנות על ידי המילה 'היה' .

החלף מספר שורות על ידי יצירת קובץ הסקריפט 'sed':

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

students.txt

מזהה: 111045
שם: רוברט
מחלקה: CSE
אצווה: 35

מזהה: 111876
שם: יוסף
מחלקה: BBA
אצווה: 27

מזהה: 111346
שם: וויליאם
מחלקה: CSE
אצווה: 45

מזהה: 111654
שם: צ'ארלס
מחלקה: EEE
אצווה: 41

מזהה: 111346
שם: ג'ון
מחלקה: CSE
אצווה: 25

מזהה: 111746
שם: תומאס
מחלקה: CSE
אצווה: 15

דוגמה -4: החלף מספר שורות של קובץ באמצעות קובץ סקריפט 'sed'

צור קובץ sed בשם change.sed עם התוכן הבא להחלפת השורות המרובות על סמך תבנית החיפוש. כאן, המילה ' CSE 'ייעשה חיפוש בקובץ הטקסט, ואם ההתאמה קיימת, היא תחפש שוב את המספר 35 ו 15. אם ההתאמה השנייה קיימת בקובץ, היא תוחלף במספר 45.

change.sed

/CSE/ {
P n;
/35/ {
ש/35/ארבע חמש/;
p; d;
}
/חֲמֵשׁ עֶשׂרֵה/ {
ש/חֲמֵשׁ עֶשׂרֵה/55/;
p; d;
}
}
p;

הפעל את הפקודה הבאה כדי לבדוק את התוכן הקיים של הקובץ. 'CSE' הופיע ארבע פעמים בקובץ הטקסט. 35 ו -15 קיימים בשני מקומות.

$חתולstudents.txt

הפקודה הבאה תחליף את תוכן השורות המרובות המבוססות על הסקריפט sed.

$sed change.sed students.txt

הפלט הבא יופיע לאחר הפעלת הפקודה.

סיכום

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