ניתן להחליף כל תו או מחרוזת באמצעות הפקודה `sed`. לפעמים, עלינו להחליף את תו השורה החדשה ( n) בקובץ בפסיק. במאמר זה אנו משתמשים בפקודה 'sed' כדי להחליף n בפסיק.
שימוש ב- 'sed' כדי להחליף n בפסיק
בעיות רבות יכולות להתרחש בעת החלפת n בפסיק. כברירת מחדל, כל שורה מסתיימת ב- n בעת יצירת קובץ. הפקודה `sed` יכולה בקלות להתפצל ב- n ולהחליף את השורה החדשה בכל תו. ניתן להשתמש במפריד אחר במקום n, אך רק כאשר משתמשים ב- GNU sed. כאשר ה n חסר בשורה האחרונה של הקובץ, GNU sed יכול להימנע מהדפסה n. יתר על כן, בדרך כלל מתווסף n לכל פלט עוקב של 'sed'.
צור קובץ
במאמר זה נראה לך כיצד להשתמש בפקודה `sed` כדי להחליף n בפסיק. כדי לעקוב אחר הדרכה זו, צור קובץ טקסט בשם Clients.txt עם פרטי הלקוח הטבלאיים הבאים.
תְעוּדַת זֶהוּת | שֵׁם | אימייל | מכשיר טלפון |
---|---|---|---|
c01 | Md. ראקיב | [מוגן בדוא'ל] | 01856233238 |
c02 | מאהר אפרוז | [מוגן בדוא'ל] | 01733536342 |
c03 | פקרול אחסן | [מוגן בדוא'ל] | 01934737248 |
c04 | הלל אודין | [מוגן בדוא'ל] | 01534895898 |
c05 | נוסראט ג'האן | [מוגן בדוא'ל] | 01866345254 |
דוגמה 1: החלף n בפסיק באמצעות -z
האפשרות -z משמשת להמרת n לתו null ( 0). התוכן של הקובץ מטופל כשורה אחת אם הוא אינו מכיל תווי null. הפקודה `sed` תמיר את השורה החדשה לתו null ותחליף כל n בפסיק באמצעות תבנית החיפוש והחלפה הראשונה. כאן, 'g' משמש לחיפוש גלובלי של n. עם דפוס החיפוש והחלפה השני, הפסיק האחרון יוחלף ב- n.
$חתולClients.txt
$sed -עם 's/ n/,/g; s/, $/ n/'Clients.txt
הפלט הבא יוצר לאחר הפעלת הפקודות.
דוגמה 2: החלף n בפסיק באמצעות a, b, $! ו- N.
ניתן להשתמש בפקודה `sed` כדי להחליף n בפסיק באמצעות a, b, N ו- $! . פה, ל משמש לצירוף משימות, ב משמש לסניף התוכן, נ משמש כדי לעבור לשורה הבאה, ו- $! משמש למניעת החלת משימת ההחלפה על השורה האחרונה. הפקודה תחליף כל אחת n עם פסיק למעט השורה האחרונה.
$חתולClients.txt
$sed ': a; N; $! ba; s/ n/,/g'Clients.txt
הפלט הבא יוצר לאחר הפעלת הפקודות.
דוגמה 3: החלף n בפסיק באמצעות H, h, d, x ו- y
אם אתה רוצה להחליף n) עם פסיק בקובץ קטן, ניתן להשתמש בפקודה 'sed' הבאה. פה, ח משמש לצירוף השורה האחרונה לטקסט ההחזקה, 1h משמש להעתיק כל שורה בקובץ לטקסט ההחזקה מהשורה הראשונה, $! d משמש למחיקת כל השורות למעט השורה האחרונה, איקס משמש להחלפת טקסט ההחזקה ומרחב הדוגמאות, ו- ו משמש להחלפת כל אחד n בטקסט ההחזקה עם פסיק.
$חתולClients.txt$sed 'H; 1h; $! D; x; y/ n/,/'Clients.txt
הפלט הבא יוצר לאחר הפעלת הפקודות.
דוגמה 4: החלף n בפסיק באמצעות -n, H, h, g ו- p
ניתן להשתמש בפקודה `sed` להחלפה n עם פסיק עם -ן אפשרות שמונעת הדפסה אוטומטית. כמו בדוגמה הקודמת, ח משמש כאן לצירוף השורה האחרונה לטקסט המחזיק, שעה אחת משמש להעתיק כל שורת הקובץ לטקסט המחזיק, $ מתייחס לשורה האחרונה של הקובץ, ז משמש להעתיק מהטקסט המחזיק, ו- עמ משמש להדפסה.
$חתולClients.txt$sed-ן'ח; שעה אחת; ${g; s / n/,/g; p} 'Clients.txt
הפלט הבא יוצר לאחר הפעלת הפקודות שלעיל.
דוגמה 5: החלף n בפסיק באמצעות H, x, p
H, x ו- p הוסברו בדוגמאות קודמות. ביטוי החיפוש והחלפה הראשון יחליף כל אחד n עם פסיק, וביטוי החיפוש והחלפה השני יחליף פסיק בתחילת שורה ברווח.
$חתולClients.txt$sed-ן'H; $ {x; s/ n/,/g; s/^, //; p;}'Clients.txt
הפלט הבא יוצר לאחר הפעלת הפקודות שלעיל.
דוגמה 6: החלף n בפסיק באמצעות N ו- 'cat'
הפקודה `cat 'משמשת כאן לשליחת תוכן הקובץ לפקודה` sed` ו- נ משמש כדי לעבור לשורה הבאה.
$חתולClients.txt$חתולClients.txt| sed 'N; s/ n/,/'
הפלט הבא יוצר לאחר הפעלת הפקודות שלעיל.
סיכום
ייתכן שיהיה צורך להחליף n בפסיק כדי להעביר נתונים מתבנית קובץ אחת לאחרת. ניתן לבצע החלפה מסוג זה גם באמצעות פקודות לינוקס אחרות. ניתן להשתמש באפשרויות פקודה רבות, כגון H, N, h ו- x, יחד עם הפקודה 'sed' להשלמת משימה זו. מדריך זה עובר על מספר דרכים לשימוש בפקודה `sed` כדי להחליף n בפסיק.