כפי שאנו חושפים את הקטע של Awk תכונות, בחלק זה של הסדרה, נעבור על הרעיון של משתנים מובנים ב- Awk. ישנם שני סוגים של משתנים בהם תוכל להשתמש ב- Awk, אלה הם; משתמש הוגדר משתנים, שסיקרנו בהם חלק 8 ו מובנה משתנים.
מובנה למשתנים יש ערכים שכבר הוגדרו ב- Awkאך אנו יכולים גם לשנות את הערכים בזהירות, המשתנים המובנים כוללים:
שם קובץ
: שם קובץ הקלט הנוכחי (אל תשנה את שם המשתנה)FR
: מספר שורת הקלט הנוכחית (כלומר שורת קלט 1, 2, 3... וכן הלאה, אל תשנה את שם המשתנה)NF
: מספר שדות בשורת הקלט הנוכחית (אין לשנות את שם המשתנה)OFS
: מפריד שדות פלטFS
: מפריד שדות קלטORS
: מפריד רשומות פלטRS
: מפריד רשומות קלטהבה נמשיך להמחיש את השימוש בכמה מהמשתנים המובנים של Awk לעיל:
כדי לקרוא את שם הקובץ של קובץ הקלט הנוכחי, תוכל להשתמש ב שם קובץ
משתנה מובנה כדלקמן:
$ awk '{print FILENAME}' ~/domains.txt
אתה תבין ששם הקובץ מודפס לכל שורת קלט, כלומר התנהגות ברירת המחדל של Awk כאשר אתה משתמש שם קובץ
משתנה מובנה.
שימוש NR
כדי לספור את מספר השורות (רשומות) בקובץ קלט, זכור כי הוא גם סופר את השורות הריקות, כפי שנראה בדוגמה שלהלן.
כשאנחנו צופים בקובץ domains.txt באמצעות פיקוד על חתול, זה מכיל 14 שורות עם טקסט וריק 2 שורות:
$ cat ~/domains.txt.
$ awk 'END {print "מספר הרשומות בקובץ הוא:", NR}' ~/domains.txt
כדי לספור את מספר השדות ברשומה או בשורה, אנו משתמשים במשתנה המובנה NR כדלקמן:
$ cat ~/names.txt.
$ awk '{print "Record:", NR, "has", NF, "fields"; } '~/names.txt.
לאחר מכן, תוכל גם לציין מפריד שדות קלט באמצעות FS
משתנה מובנה, הוא מגדיר כיצד Awk מחלק שורות קלט לשדות.
ערך ברירת המחדל עבור FS
הוא מֶרחָב ו כרטיסייה, אבל אנחנו יכולים לשנות את הערך של FS
לכל דמות שתנחה את Awk לחלק את שורות הקלט בהתאם.
ישנן שתי שיטות לעשות זאת:
שקול את הקובץ /etc/passwd במערכת לינוקס, השדות בקובץ זה מתחלקים באמצעות :
כך שנוכל לציין אותו כמפריד שדות הקלט החדש כאשר נרצה לסנן שדות מסוימים כמו בדוגמאות הבאות:
אנחנו יכולים להשתמש ב -F
אפשרות כדלקמן:
$ awk -F ':' '{הדפס $ 1, $ 4;}' /etc /passwd.
לחלופין, אנו יכולים גם לנצל את FS
משתנה מובנה להלן:
$ awk 'התחל {FS = “:”; } {הדפס $ 1, $ 4; } ' /etc /passwd.
כדי לציין מפריד שדות פלט, השתמש ב OFS
משתנה מובנה, הוא מגדיר כיצד שדות הפלט יופרדו באמצעות התו שבו אנו משתמשים כמו בדוגמה שלהלן:
$ awk -F ':' 'BEGIN {OFS = "==>";} {הדפס $ 1, $ 4;}' /etc /passwd.
בזה חלק 10, בחנו את הרעיון של שימוש במשתנים מובנים של Awk המגיעים עם ערכים מוגדרים מראש. אך אנו יכולים גם לשנות את הערכים הללו, עם זאת, לא מומלץ לעשות זאת אלא אם כן אתה יודע מה אתה עושה, תוך הבנה מספקת.
לאחר מכן, נתקדם לכיסוי האופן שבו אנו יכולים להשתמש במשתני מעטפת בפעולות הפקודה של Awk, לכן להישאר מחוברים אליהם טקמינט.