באש: בעת קריאת השורה

Bash While Read Line



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

תחביר בסיסי של שורת קריאה

התחביר הבא משמש עבור bash shell לקריאת קובץ תוך שימוש בלולאה:







בזמן לקרוא -rקַו;
לַעֲשׂוֹת
זרק 'שורה $';
בוצע <input.file

האפשרות '-r' בתחביר שהוזכר לעיל הועברה לפקודת קריאה המונעת את בריחת הלחצן החוזר מפרשנות. האפשרות 'input_file' ייצגה את שם הקובץ שאליו ברצונך לגשת באמצעות הפקודה 'read'.



ניתן להשתמש במפריד השדות הפנימי המקוצר IFS לפני פקודת הקריאה מוגדרת למחרוזת null שמונעת מקיצוץ של מרחב לבן או נגרר.



בזמן IFS=לקרוא -rקַו;
לַעֲשׂוֹת
זרק שורה $;
בוצע <input.file

פתח את הטרמינל באמצעות קיצור Ctrl + Alt + t ולאחר מכן הפעל עליו את הפקודות הבאות.





דוגמה מס '1: קריאת קבצים שורה אחר שורה

ניקח דוגמא בה נניח שיש לנו קובץ בשם OS.txt המכיל את שמות כל הפצות הלינוקס החשובות. אם אתה רוצה לקרוא קובץ מבלי להשתמש בפקודה 'חתול', לשם כך תוכל לבצע את הפקודה הבאה לביצוע המשימה הספציפית. נשתמש בלולאת ה- while שתקרא כל שורה מהקובץ OS.txt ונשמור את התוכן בכל שלב בשורת $ משתנה שתוכל להציג מאוחר יותר.

הדבק את השמות הבאים של הפצות Linux ב- OS.txt



CentOS
אובונטו
דביאן
LinuxMint $בזמן לקרואקַו;
לַעֲשׂוֹת
זרק שורה $;
בוצע <OS.txt


מהפקודה שלעיל תקבל את התגובה הבאה בחלון הטרמינל:

דוגמה מס '2: קריאת קובץ באמצעות סקריפט bash

צור קובץ bash ולאחר מכן הוסף את הקוד המוזכר בקובץ זה כדי לקרוא את תוכן הקובץ. אתה יכול לאחסן את קובץ הטקסט הקודם במשתנה חדש של שם קובץ ומשתנה $ n משמש כדי לשמור על הערך של כל שורה. כעת, בעזרת לולאת ה- while נקרא כל שורה מתוך קובץ עם מספר שורה מסוים.

#!/bin/bash
שם קובץ='OS.txt'
נ=1
בזמן לקרואקַו;
לַעֲשׂוֹת
# לקריאת כל שורה
זרק 'קו הפצה של מערכת ההפעלה.$ n:שורה $'
נ= $((n+1))
בוצע < $ קובץ

שמור את הקובץ בשם OSinfo.sh והקלד את הפקודה הבאה במסוף כדי להריץ את סקריפט bash לעיל.

$לַחֲבוֹטOSinfo.sh

כעת, הפעל את הפקודה cat כדי להציג את תוכן הקובץ המקורי.

$חתולOS.txt

שיטה חלופית לקריאת קבצים

שימוש בשם קובץ עובר מתוך פקודה

בקובץ bash, עליך להוסיף את סקריפט הקוד הבא. בתסריט זה, עלינו לקחת שם קובץ כארגומנט. ראשית, ערך הארגומנט נקרא על ידי משתנה של $ 1 בעל שם קובץ לקריאה. הוא יבדוק כי שם הקובץ קיים במיקום שצוין ואז באמצעות לולאת ה- while הוא קורא שורה אחר שורה בדומה לדוגמה הקודמת.

#!/bin/bash
שם קובץ=$ 1
בזמן לקרואקַו;לַעֲשׂוֹת
# קריאת כל שורה
זרק שורה $
בוצע < קובץ $.טקסט

שמור את הסקריפט לעיל בשם 'Readline.sh' ובצע את הפקודה הבאה במסוף כדי להריץ את הסקריפט הנ'ל:

בפלט לעיל, תבחין כי הקובץ 'OSinfo.txt' עובר כטענה והתוכן של 'OSinfo.txt' יוצג לאחר הסרת רווחים נוספים. אתה יכול להציג את תוכן הקובץ המקורי על ידי הפעלת 'cat OSinfo.txt'.

סיכום

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