למדו על Awk: הכלי החזק ביותר לעיבוד טקסטים אי פעם?

גילוי נאות: התמיכה שלך עוזרת להפעיל את האתר! אנו מרוויחים דמי הפניה עבור חלק מהשירותים שאנו ממליצים עליהם בדף זה.


Awk הוא הכלי הגדול ביותר לעיבוד טקסטים שלא ידעת שאתה זקוק לו. אבל אם אתה עובד עם הרבה נתונים, כנראה שחשבת דברים כמו “זה יהיה ממש נחמד לחלץ את העמודה השנייה והחמישית של הנתונים מהטבלה הזו.” וזה בצורה הפשוטה ביותר שהיא עושה Awk.

היסטוריה קטנה

בימים שלפני רוב האנשים ידעו מהו בסיס נתונים יחסי – וכמעט שני עשורים לפני פיתוח MySQL – הרבה נתונים נשמרו בקבצי טקסט. האמת, הרבה נתונים עדיין מאוחסנים כך. זה נכון במיוחד במערכות הפעלה של יוניקס. לדוגמה, קובץ ה- Unix / etc / passwd הוא רק קובץ טקסט עם שורה אחת לכל משתמש במערכת, וכל שדה עבור המשתמש מופרד על ידי מעי גס. לדוגמה:

admin: *: 1001: 2001: מנהל מערכת: / home / root: / home / sh
brian: *: 1002: 2002: Brian Kernighan: / home / brian: / home / bash

במערכות גדולות, קבצי passwd כאלה עשויים להכיל אלפי שורות. אתה יכול לדמיין שישנם זמנים שבהם תרצה רשימה מלאה של שמות האנשים עם חשבונות במחשב שלך. במקרה זה, זה יהיה השדה החמישי. אז בשנת 1977, שלושה מתכנתים יצרו תוכנית כללית לשם כך. הם היו: אלפרד אהו, פיטר וויינברגר ובריאן קרניגן. וראשי התיבות שלהם AWK הוא איך Awk קיבל את שמו.

דוגמה מעורר

כברירת מחדל, Awk מניח ששדות מופרדים על ידי תווי רווח. אבל אתה יכול לומר ל- Awk להשתמש בתו שונה על ידי שימוש בסמל -F (או –פריד-מפריד) כדי לתת ל- Awk מפריד שדות אחר. במקרה של / etc / passwd, נרצה להשתמש בתו “:”.

בהתחשב בתו המפריד, Awk מקצה את השדה הראשון למשתנה $ 1, השדה השני למשתנה $ 2 וכן הלאה. השורה כולה מוקצית ל- $ 0. אם זה נראה מוכר, יתכן שזה מכיוון שכך סקריפטים של קליפות בורן ובש מנהלים פרמטרים של שורת הפקודה.

למרות שניתן להכניס סקריפטים של Awk לקבצים, הם בדרך כלל ממוקמים בשורת הפקודה כחלק מפקודת Awk. להלן פקודת awk פשוטה שתציג את כל המשתמשים והשמות האמיתיים של החשבונות הרשומים בקובץ / etc / passwd:

awk -F: ” / etc / passwd

זה יפיק את הפלט הבא מקובץ הדוגמה / etc / passwd שלמעלה:

מנהל מערכת
בריאן בריני קרניגן

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

Awk משאבים

Awk היא שפה מאוד קלה ללמוד. ויש הרבה משאבים לעשות בדיוק את זה. נעבור על כמה להלן.

הדרכות מקוונות

להלן מספר הדרכות שמתחילות ממש בתחילת הדרך ומעבירות אותך דרך ההיבטים החשובים ביותר של השפה. איזה מהם אתה מועיל ביותר יהיה תלוי בך.

  • הדרכת גרימייר Awk: זוהי ההיכרות המצוינת של ברוס ברנט ל- Awk. עיין בכל הדרכות יוניקס.
  • האשכולות הנפוצים: Awk על ידי דוגמה: זה של יבמ ומספק דרך ללא כאבים ללמוד Awk. הקפד לבדוק את חלק 2 לאחר שתסיים את זה.
  • מדריך Awk: זוהי הקדמה של נקודת Tutorials Point ל- Awk שאפילו לוקחת אותך דרך הורדה והתקנה במכונות לינוקס..
  • פריימר של Awk: הדרכה זו עוברת די מהר, אבל אם אתה מרגיש בנוח עם סקריפטים של מעטפת או שהשתמשת ב- Awk בעבר, זו בחירה טובה.

ספרים

ישנם מספר ספרים טובים שמהווים בסיס לאוק.

  • שפת התכנות של Awk מאת אהו וקרניגן: זה הספר המקורי ב- Awk. אבל בניגוד לרוב הספרים כאלה של היזמים המקוריים, זה באמת טוב וקל להבנה.
  • סד & Awk של ​​Dougherty and Robbins: זהו קלאסיקה שעוסק ב- Awk כמו גם בעורך הזרם (sed). השניים משמשים לרוב יחד. מעניין גם את Sed and Awk: Pocket Reference ברגע שאתה מרגיש בנוח עם המערכות.
  • תכנות AWK: שאלות ותשובות מאת ג’ורג ‘דוקט: זהו ספר קינדל מעניין שהוא פחות או יותר ספר בישול. זה כולל הרבה שאלות נהדרות שירחיבו את הדרך בה אתם חושבים על Awk ואת הדרכים בהן אתם חושבים שאפשר להשתמש בהן.
  • תכנות awk אפקטיבית: עיבוד טקסטים אוניברסלי והתאמת דפוסים מאת ארנולד רובינס: זה דומה להמשך המשך של שפת התכנות Awk. זה מעמיק יותר בשפה ומתמקד בגרסת ה- Gnu של Awk, Gawk.

יישומי Awk

היו כמה יישומים של Awk מאז הראשון בהם בשנת 1977. למעשה, בשנת 1985 (לפני שפורסמה שפת התכנות Awk), Awk הורחב מאוד. גרסה זו מכונה לעתים קרובות “Awk חדש” או nawk. ישנן כמה גרסאות פופולריות יותר הזמינות כעת.

  • גאוק: זהו יישום Awk של ​​פרויקט גנו. זה פופולרי ביותר ותומך בשפות אחרות טוב יותר מגרסאות אחרות.
  • BWK: זו “האמת האחת”, מכיוון שהיא זו המשמשת את שפת התכנות Awk. הוא נמצא בשימוש נרחב ב- FreeBSD.
  • Mawk: זו גרסה שנכתבה במקור על ידי מייק ברנן, אך מתוחזקת ומעודכנת על ידי תומאס דיקי מאז 2009. ההתמקדות היא במהירות.
  • BusyBox: זהו כלי כללי המספק מספר כלים פשוטים של יוניקס, כולל Awk.

פורומים מקוונים

לפעמים אתה רק צריך לשאול שאלות. ויש הרבה אנשים באינטרנט שמכירים את Awk היטב. להלן כמה מהמקומות הטובים יותר להגיע אליכם כדי לענות על שאלותיכם.

  • Comp.lang.awk קבוצת גוגל: זהו פורום פעיל יחסית שכדאי לבדוק.
  • ערימת הצפות של שאלות על Awk: זהו דף עם השאלות החדשות ביותר שתויגו כקשורות עם Awk. זו התייחסות ומקום נהדר ללכת אליו ולהעלות שאלות משלך.
  • Awk Reddit: זהו subreddit עבור Awk. זה לא פעיל במיוחד, אבל יש הרבה אנשים בקיאים בזה, וזה מקום טוב לקבל תשובות לשאלות.

סיכום

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

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map