הערה: השיטות המוצגות להלן הודגמו ב- Ubuntu 20.04. עם זאת, הם גם יעבדו היטב עם כל הפצה אחרת של לינוקס.
שיטות שימוש עבור כל שורה בקובץ ב- Bash:
בשיטות אלה, נראה לך דוגמה שבה תוכל לקרוא כל שורה מתוך קובץ, ולאחר מכן תוכל להציג אותה במסוף או שתוכל אפילו לאחסן שורות אלה בקובץ אחר. הבה נבחן את שתי השיטות הללו.
שיטה מס '1: להצגת קווי הקריאה במסוף:
להצגת שורות הקובץ במסוף באמצעות כל שורה בקובץ, יהיה עליך לבצע את השלבים הבאים:
שלב 1: יצירת קובץ טקסט דמה:
קודם כל, עליך ליצור קובץ טקסט עם כמה נתונים אקראיים למען ההדגמה. למרות שניתן ליצור קובץ טקסט זה בכל מקום, עם זאת, מומלץ מאוד ליצור אותו בתיקיית הבית. לשם כך, לחץ על סמל מנהל הקבצים המודגש בתמונה המוצגת למטה:
כעת לחץ לחיצה ימנית בכל מקום בתיקיית הבית ובחר באפשרות מסמך חדש מהתפריט שמופיע. לאחר מכן בחר באפשרות ריק מסמך. לאחר שנוצר מסמך ריק בתיקיית הבית שלך, ספק את השם שבחרת עבורו ואחריו הסיומת .txt. בדוגמה זו, קראנו לו בשם ForEachLine.txt.
לחץ פעמיים על קובץ טקסט זה כדי לפתוח אותו ולאחר מכן הקלד בו כל טקסט אקראי כפי שמוצג בתמונה הבאה. לאחר ביצוע פעולה זו, שמור קובץ זה וסגור אותו.
שלב 2: יצירת סקריפט הבש:
כעת צור קובץ Bash באותו אופן בו יצרת את קובץ הטקסט בתיקיית הבית פרט לכך שהפעם עליך לספק את שמו ואחריו סיומת .sh במקום סיומת .txt. שמנו את קובץ ה- Bash שלנו בשם ForEachLine.sh אך תוכל לתת לו כל שם שתבחר.
פתח קובץ זה על ידי לחיצה כפולה עליו ולאחר מכן הקלד את הסקריפט המוצג בתמונה למטה בקובץ הבש החדש שלך. כאן, השורה הראשונה נמצאת כדי להצביע על כך שהתסריט הבא הוא סקריפט Bash. פשוט יצרנו משתנה בשם File והקצנו לו את שם קובץ הטקסט כערכו, כלומר ForEachLine.txt. לאחר מכן יצרנו משתנה בשם Lines והשווינו אותו ל- $ (קובץ $ cat). כאן, פקודת החתול קוראת את התוכן של קובץ הטקסט שלנו וכאשר לפניו עומד סמל $, אז התוכן הנקרא על ידי פקודה זו יאוחסן במשתנה Lines. באופן זה, כל שורות הקובץ בשם ForEachLine.txt יאוחסנו במשתנה Lines. לאחר מכן יישמנו את לולאת ה- For שיש לה קו איטרציה. איטרטור זה עובד על משתנה Lines שיצרנו למעלה והוא יחזור על כל השורות אחת אחת. ואז בלוק הנעשה, פשוט הצגנו את כל השורות האלה במסוף על ידי שימוש בפקודת הד.
שלב 3: הפעלת סקריפט הבש:
כעת הפעל את הטרמינל באובונטו 20.04 ולאחר מכן הפעל בו את הפקודה הבאה כדי לבצע את הסקריפט Bash שנוצר למעלה:
bash ForEachLine.sh
כאשר פקודה זו תגרום לביצוע סקריפט bash, תוכל לראות את כל השורות של קובץ הטקסט במסוף שלך כפי שמוצג בתמונה הבאה:
שיטה מס '2: לשמירת כל שורות הקריאה בקובץ אחר:
בשיטה זו, שינינו מעט את סקריפט הבש שנוצר בשיטה שלמעלה לשמירת כל שורות הקריאה בקובץ טקסט חדש במקום להציג אותן במסוף. לשם כך, בצע את השלבים המוזכרים להלן:
שלב 1: שינוי סקריפט הבש שנוצר למעלה והפעלתו:
פתח את סקריפט Bash שיצרת בשיטה למעלה ושנה אותו כפי שמוצג בתמונה הבאה. פשוט הוספנו את הסמל >> ואחריו שם קובץ חדש לאחר פקודת ההד בתוך הבלוק עשה. שינוי זה ישמור את כל שורות הקריאה בקובץ טקסט חדש במקום להציג אותן במסוף. כעת הפעל שוב את סקריפט Bash באמצעות הטרמינל עם הפקודה bash ואחריו שם קובץ Bash. הפעם כאשר תסריט Bash יפעל, הוא ייצור קובץ טקסט חדש ששמו במקרה זה הוא NewFile.txt.
שלב 2: גישה לקובץ הטקסט החדש שנוצר:
כדי לוודא אם כל שורות הקריאה נשמרו בקובץ הטקסט החדש, תוכל פשוט להציג את תוכן הקובץ על ידי הפעלת הפקודה הבאה במסוף שלך:
חתול NewFile.txt
הפלט המוצג בתמונה למטה יבטיח לך שכל שורות הקריאה הועתקו לקובץ הטקסט החדש.
סיכום:
בדרך זו, תוכל להשתמש בכל שורה בקובץ כדי לקרוא את כל שורות הקובץ ולאחר מכן לתפעל אותה בעזרת שורות אלה. בדיוק דיברנו על שני התרחישים הבסיסיים במאמר זה, עם זאת, אתה יכול אפילו להשתמש בלולאה זו לבעיות מורכבות יותר.