אנגליתצרפתיתספרדי

Ad


סמל OnWorks

awkplan9 - מקוון בענן

הפעל את awkplan9 בספק אירוח בחינם של OnWorks על אובונטו מקוון, פדורה מקוון, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS

זוהי הפקודה awkplan9 שניתן להפעיל בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות המרובות שלנו, כגון Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS

תָכְנִית:

שֵׁם


awk - שפת סריקה ועיבוד מכוונת דפוסים

תַקצִיר


awk [ -Ffs ] [ -v var=ערך ] [ -אדוןn ] [ -mfn ] [ -f פרוג [ פרוג ] [ פילה ... ]

תיאור


אוי סורק כל קלט פילה עבור קווים התואמים כל אחד מקבוצת הדפוסים שצוינו
ממש פנימה פרוג או בקובץ אחד או יותר שצוין כ -f פילה. עם כל דפוס שם
יכולה להיות פעולה משויכת שתתבצע כאשר שורה של a פילה תואם את
תבנית. כל קו מותאם לחלק הדפוס של כל פעולת דפוס
הַצהָרָה; הפעולה המשויכת מבוצעת עבור כל דפוס מותאם. שם הקובץ
פירושו הקלט הסטנדרטי. כל פילה של הטופס var=ערך מתייחסים אליו כאל משימה, לא
שם קובץ, והוא מופעל בזמן שהוא היה נפתח אילו היה שם קובץ.
האפשרות -v אחריו var=ערך היא משימה שצריך לעשות לפני פרוג מבוצע;
כל מספר של -v יתכן ואפשרויות קיימות. -F fs אפשרות מגדירה את מפריד שדות הקלט
להיות הביטוי הרגולרי fs.

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

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

להצהרת דפוס פעולה יש את הצורה

דפוס { פעולה }

נעדר { פעולה } פירושו להדפיס את השורה; דפוס חסר תמיד תואם. תבנית-
הצהרות פעולה מופרדות על ידי שורות חדשות או נקודות פסיק.

פעולה היא רצף של הצהרות. הצהרה יכולה להיות אחת מהאפשרויות הבאות:

אם ביטוי ) הצהרה [אחר הצהרה ]
בזמן( ביטוי ) הצהרה
עבור ( ביטוי ; ביטוי ; ביטוי ) הצהרה
עבור ( היה in מערך ) הצהרה
do הצהרה בזמן( ביטוי )
לשבור
להמשיך
{ [ הצהרה ... ] }
ביטוי # נפוץ היה = ביטוי
הדפס [ רשימת ביטויים ] [ > ביטוי ]
הדפס פוּרמָט [ , רשימת ביטויים ] [ > ביטוי ]
להחזיר [ ביטוי ]
הבא # דלג על התבניות שנותרו בשורת הקלט הזו
nextfile # דלג על שאר הקובץ הזה, פתח את הבא, התחל מלמעלה
להסיר מערך[ ביטוי ]# מחק רכיב מערך
להסיר מערך # מחק את כל הרכיבים של המערך
יציאה [ ביטוי ] # צא מיד; הסטטוס הוא ביטוי

הצהרות מסתיימות באמצעות נקודה-פסיק, קווים חדשים או סוגרים ימניים. ריק ביטוי-
רשימה מסמל $0. קבועי מחרוזת מצוטט " ", כאשר ה-C Escapes הרגילים מזוהים
בְּתוֹך. ביטויים מקבלים מחרוזת או ערכים מספריים לפי הצורך, ונבנים באמצעות
המפעילים + - * / % ^ (אקספונציה), ושרשור (מסומן על ידי רווח לבן).
המפעילים ! ++ -- += -= *= /= %= ^= > >= < <= == != ?: זמינים גם ב
ביטויים. משתנים עשויים להיות סקלרים, רכיבי מערך (מסומנים x[i]) או שדות.
משתנים מאותחלים למחרוזת null. מנויים של מערך עשויים להיות כל מחרוזת, לא
בהכרח מספרי; זה מאפשר צורה של זיכרון אסוציאטיבי. מספר מנויים
כמו [i,j,k] מותרים; המרכיבים משורשרים, מופרדים על ידי הערך
of SUBSEP.

השמיים הדפסה המשפט מדפיס את הארגומנטים שלו על הפלט הסטנדרטי (או על קובץ אם >פילה or
>>פילה קיים או על צינור אם |cmd קיים), מופרד על ידי שדה הפלט הנוכחי
מפריד, ומסתיים על ידי מפריד רשומות הפלט. פילה ו cmd עשוי להיות מילולי
שמות או ביטויים בסוגריים; ערכי מחרוזת זהים בהצהרות שונות מציינים
אותו קובץ פתוח. ה הדפס הצהרה מעצבת את רשימת הביטויים שלה לפי
פורמט (ראה fprintf(2)). הפונקציה המובנית סגור(ביטוי) סוגר את הקובץ או הצינור ביטוי.
הפונקציה המובנית flush(ביטוי) שוטף כל פלט מאוחסן עבור הקובץ או הצינור ביטוי.

הפונקציות המתמטיות exp, היכנס, מ"ר, חטא, cos, ו atan2 מובנים. אחרים מובנים-
בפונקציות:

אורך אורך הארגומנט שלו כמחרוזת, או של $0 אם אין ויכוח.

שורה מספר אקראי על (0,1)

זִמָּה קובע זרע עבור שורה ומחזיר את הזרע הקודם.

int מקצץ לערך מספר שלם

utf ממיר את הארגומנט המספרי שלו, מספר תו, למחרוזת UTF

substr(s, m, n)
מה היא n-מחרוזת משנה של s שמתחיל בעמדה m נספר מ-1.

אינדקס(s, t)
העמדה ב s היכן המחרוזת t מתרחש, או 0 אם לא.

התאמה(s, r)
העמדה ב s שבו הביטוי הרגולרי r מתרחש, או 0 אם לא. ה
משתנים RSTART ו RLENGTH מוגדרים למיקום ולאורך של המותאם
מחרוזת.

לְפַצֵל(s, a, fs)
מפצל את המיתר s לתוך אלמנטים של מערך a[1], a[2], ..., a[n], וחוזר n. ה
ההפרדה נעשית עם הביטוי הרגולרי fs או עם מפריד השדות FS if
fs לא ניתן. מחרוזת ריקה כמפריד שדות מפצלת את המחרוזת לאחת
רכיב מערך לכל תו.

תַת(r, t, s)
תחליפים t להופעה הראשונה של הביטוי הרגולרי r במחרוזת s.
If s לא ניתן, $0 משמש.

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

sprintf (fmt, ביטוי, ...)
המחרוזת הנובעת מהעיצוב ביטוי ... פי הדפס פוּרמָט fmt

מערכת(cmd)
מבצע cmd ומחזיר את מצב היציאה שלו

להנמיך(str)
מחזיר עותק של str עם כל האותיות הגדולות מתורגמות להן
מקבילות מקבילות באותיות קטנות.

למעלה (str)
מחזיר עותק של str עם כל התווים באותיות קטנות מתורגמות לאותם
מקבילות באותיות גדולות.

ה"פונקציה" getline סטים $0 לרשומת הקלט הבאה מקובץ הקלט הנוכחי;
getline <פילה סטים $0 לשיא הבא מ פילה. getline x מגדיר משתנה x במקום.
לבסוף, cmd | getline צינורות הפלט של cmd אל תוך getline; כל שיחה של getline החזרות
שורת הפלט הבאה מ cmd. בכל המקרים, getline מחזיר 1 עבור קלט מוצלח,
0 עבור סוף הקובץ, ו-1 עבור שגיאה.

דפוסים הם שילובים בוליאניים שרירותיים (עם ! || &&) של ביטויים רגולריים ו
ביטויים יחסיים. ביטויים רגולריים הם כמו ב regexp(6). מבודד קבוע
ביטויים בתבנית חלים על כל הקו. ביטויים רגולריים עשויים להופיע גם ב
ביטויים יחסיים, באמצעות האופרטורים ~ ו !~. /re/ הוא קבוע קבוע
ביטוי; ניתן להשתמש בכל מחרוזת (קבוע או משתנה) כביטוי רגולרי, למעט
במיקום של ביטוי רגולרי מבודד בתבנית.

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

ביטוי יחסי הוא אחד מהבאים:

ביטוי matchop הבעה רגילה
ביטוי מחדש ביטוי
ביטוי in שם מערך
(ביטוי,expr,...) in שם מערך

היכן ש מחדש הוא כל אחד מששת האופרטורים היחסיים ב-C, ו-a matchop הוא או ~
(התאמה) או !~ (לא מתאים). תנאי הוא ביטוי אריתמטי, יחס
ביטוי, או שילוב בוליאני של אלה.

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

שמות משתנים עם משמעויות מיוחדות:

CONVFMT
פורמט המרה המשמש בעת המרת מספרים (ברירת מחדל %.6g)

FS ביטוי רגולרי המשמש להפרדת שדות; ניתן להגדרה גם לפי אפשרות -Ffs.

NF מספר השדות ברשומה הנוכחית

NR המספר הסידורי של הרשומה הנוכחית

FNR המספר הסידורי של הרשומה הנוכחית בקובץ הנוכחי

שם קובץ
שם קובץ הקלט הנוכחי

RS מפריד רשומות קלט (שורה חדשה כברירת מחדל)

FSO מפריד שדות פלט (ריק ברירת מחדל)

ORS מפריד רשומות פלט (שורה חדשה כברירת מחדל)

OFMT פורמט פלט עבור מספרים (ברירת מחדל %.6g)

SUBSEP מפריד בין מספר מנויים (ברירת מחדל 034)

ARGC ספירת ארגומנטים, ניתן להקצאה

ARGV מערך ארגומנטים, ניתן להקצאה; חברים שאינם אפס נחשבים לשמות קבצים

על אודות
מערך משתני סביבה; מנויים הם שמות.

ניתן להגדיר פונקציות (במיקום של הצהרת תבנית פעולה) כך:

function foo(a, b, c) { ...; החזר x }

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

דוגמאות


אורך ($0) > 72
הדפס שורות ארוכות מ-72 תווים.

{ הדפס $2, $1 }
הדפס את שני השדות הראשונים בסדר הפוך.

התחל { FS = ",[ \t]*|[ \t]+" }
{ הדפס $2, $1 }
אותו דבר, עם שדות קלט מופרדים על ידי פסיק ו/או ריקים וכרטיסיות.

{ s += $1 }
END { הדפס "סכום הוא", s, "ממוצע הוא", s/NR }
הוסף את העמודה הראשונה, הדפס סכום וממוצע.

/התחל הפסק/
הדפס את כל השורות בין זוגות התחלה/עצירה.

התחל { # סימולציה הד(1)
עבור (i = 1; i < ARGC; i++) printf "%s", ARGV[i]
printf "\ n"
יציאה }

מקור


/sys/src/cmd/awk

השתמש ב-awkplan9 באינטרנט באמצעות שירותי onworks.net


שרתים ותחנות עבודה בחינם

הורד אפליקציות Windows & Linux

פקודות לינוקס

Ad