Presentation is loading. Please wait.

Presentation is loading. Please wait.

יסודות מערכות פתוחות ג ' בארה אחמד המכללה האקדמית נתניה The Awk Utility.

Similar presentations


Presentation on theme: "יסודות מערכות פתוחות ג ' בארה אחמד המכללה האקדמית נתניה The Awk Utility."— Presentation transcript:

1 http://www.netanya.ac.il/ahmad1 יסודות מערכות פתוחות ג ' בארה אחמד המכללה האקדמית נתניה The Awk Utility

2 http://www.netanya.ac.il/ahmad2 The Awk Utility – example1 {print $0} p1 Yosi 12345 70 80 45 17 Ron 65432 90 72 65 Rami 52312 76 98 13 87 16 Dana 54321 37 64 87 100 f1 > awk -f p1 f1 הפעלה Yosi 12345 70 80 45 17 Ron 65432 90 72 65 Rami 52312 76 98 13 87 16 Dana 54321 37 64 87 100 פלט

3 http://www.netanya.ac.il/ahmad3 The Awk Utility – example2 {print $1,$3} p1 Yosi 12345 70 80 45 17 Ron 65432 90 72 65 Rami 52312 76 98 13 87 16 Dana 54321 37 64 87 100 f1 > awk -f p1 f1 הפעלה Yosi 70 Ron 90 Rami 76 Dana 37 פלט

4 http://www.netanya.ac.il/ahmad4 The Awk Utility – example3 {print FNR,NF,$0} p1 Yosi 12345 70 80 45 17 Ron 65432 90 72 65 Rami 52312 76 98 13 87 16 Dana 54321 37 64 87 100 f1 > awk -f p1 f1 הפעלה 1 6 Yosi 12345 70 80 45 17 2 5 Ron 65432 90 72 65 3 7 Rami 52312 76 98 13 87 16 4 6 Dana 54321 37 64 87 100 פלט

5 http://www.netanya.ac.il/ahmad5 The Awk Utility – example4 {print NR,FNR,NF,$0} p1 Yosi 12345 70 80 45 17 Ron 65432 90 72 65 Rami 52312 76 98 13 87 16 Dana 54321 37 64 87 100 f1 > awk -f p1 f1 f2 הפעלה 1 1 6 Yosi 12345 70 80 45 17 2 2 5 Ron 65432 90 72 65 3 3 7 Rami 52312 76 98 13 87 16 4 4 6 Dana 54321 37 64 87 100 5 1 3 Udi Unix data_structure 6 2 5 Ahmad Java Unix c c# 7 3 3 Gershon c# Asp.Net פלט Udi Unix, data_structure Ahmad Java, Unix, c, c# Gershon c#, Asp.Net f2

6 http://www.netanya.ac.il/ahmad6 The Awk Utility – example5 BEGIN {“Hi”} {print NR,FNR,NF,$0} END {“Bye”} p1 Yosi 12345 70 80 45 17 Ron 65432 90 72 65 Rami 52312 76 98 13 87 16 Dana 54321 37 64 87 100 f1 > awk -f p1 f1 f2 הפעלה Hi 1 1 6 Yosi 12345 70 80 45 17 2 2 5 Ron 65432 90 72 65 3 3 7 Rami 52312 76 98 13 87 16 4 4 6 Dana 54321 37 64 87 100 5 1 3 Udi Unix data_structure 6 2 5 Ahmad Java Unix c c# 7 3 3 Gershon c# Asp.Net Bye פלט Udi Unix, data_structure Ahmad Java, Unix, c, c# Gershon c#, Asp.Net f2

7 http://www.netanya.ac.il/ahmad7 The Awk Utility – example6 p1 Number of data files is 2 file_No file file NR FNR NF $0 1 f1 f1 1 1 6 Yosi 12345 70 80 45 17 1 f1 f1 2 2 5 Ron 65432 90 72 65 1 f1 f1 3 3 7 Rami 52312 76 98 13 87 16 1 f1 f1 4 4 6 Dana 54321 37 64 87 100 2 f2 f2 5 1 3 Udi Unix, data_structure 2 f2 f2 6 2 5 Ahmad Java, Unix, c, c# 2 f2 f2 7 3 3 Gershon c#, Asp.Net bye פלט Udi Unix, data_structure Ahmad Java, Unix, c, c# Gershon c#, Asp.Net f2 BEGIN {print "Number of data files is",ARGC-1 print "file_No\tfile\tfile\tNR\tFNR\tNF\t$0" } { print ARGIND,"\t",ARGV[ARGIND],"\t",FILENAME,"\t",NR,"\t",FNR,"\t",NF,"\t",$0} END { print "bye“ } Yosi 12345 70 80 45 17 Ron 65432 90 72 65 Rami 52312 76 98 13 87 16 Dana 54321 37 64 87 100 f1 > awk -f p1 f1 f2 הפעלה

8 http://www.netanya.ac.il/ahmad8 The Awk Utility – example7 {print "The length of ",$1,"is",length($1)} p1 The length of Yosi is 4 The length of Ron is 3 The length of Rami is 4 The length of Dana is 4 פלט Yosi 12345 70 80 45 17 Ron 65432 90 72 65 Rami 52312 76 98 13 87 16 Dana 54321 37 64 87 100 f1

9 http://www.netanya.ac.il/ahmad9 The Awk Utility – example8 NR==2 {print $0} p1 Ron 65432 90 72 65 פלט Yosi 12345 70 80 45 17 Ron 65432 90 72 65 Rami 52312 76 98 13 87 16 Dana 54321 37 64 87 100 f1

10 http://www.netanya.ac.il/ahmad10 The Awk Utility – example9 $3>70 {print $0} p1 Ron 65432 90 72 65 Rami 52312 76 98 13 87 16 פלט Yosi 12345 70 80 45 17 Ron 65432 90 72 65 Rami 52312 76 98 13 87 16 Dana 54321 37 64 87 100 f1

11 http://www.netanya.ac.il/ahmad11 The Awk Utility – example10 !($3>70) {print $0} p1 Yosi 12345 70 80 45 17 Dana 54321 37 64 87 100 פלט Yosi 12345 70 80 45 17 Ron 65432 90 72 65 Rami 52312 76 98 13 87 16 Dana 54321 37 64 87 100 f1

12 http://www.netanya.ac.il/ahmad12 The Awk Utility – example11 NR==2 || !($3>70) {print $0} p1 Yosi 12345 70 80 45 17 Ron 65432 90 72 65 Dana 54321 37 64 87 100 פלט Yosi 12345 70 80 45 17 Ron 65432 90 72 65 Rami 52312 76 98 13 87 16 Dana 54321 37 64 87 100 f1

13 http://www.netanya.ac.il/ahmad13 The Awk Utility – example12 NR==1, NF==7 {print $0} p1 Yosi 12345 70 80 45 17 Ron 65432 90 72 65 Rami 52312 76 98 13 87 16 פלט Yosi 12345 70 80 45 17 Ron 65432 90 72 65 Rami 52312 76 98 13 87 16 Dana 54321 37 64 87 100 f1

14 http://www.netanya.ac.il/ahmad14 The Awk Utility – example13 /Aviv/ {print $0} p1 Ron 65432 Tel-Aviv 90 72 65 Aviv 52312 Haifa 76 98 13 87 16 פלט Yosi 12345 Ranana 70 80 45 17 Ron 65432 Tel-Aviv 90 72 65 Aviv 52312 Haifa 76 98 13 87 16 Dana 54321 Netanya 37 64 87 100 f1

15 http://www.netanya.ac.il/ahmad15 The Awk Utility – example14 $1==“Aviv” {print $0} p1 Aviv 52312 Haifa 76 98 13 87 16 פלט Yosi 12345 Ranana 70 80 45 17 Ron 65432 Tel-Aviv 90 72 65 Aviv 52312 Haifa 76 98 13 87 16 Dana 54321 Netanya 37 64 87 100 f1

16 http://www.netanya.ac.il/ahmad16 The Awk Utility – example15 $3==“Aviv” {print $0} p1 פלט Yosi 12345 Ranana 70 80 45 17 Ron 65432 Tel-Aviv 90 72 65 Aviv 52312 Haifa 76 98 13 87 16 Dana 54321 Netanya 37 64 87 100 f1

17 http://www.netanya.ac.il/ahmad17 The Awk Utility – example16 BEGIN {max=0 ; Name=""} NF-2>max {max=NF-2 ; Name=$1} END {print Name,”with”,max,”grades”} p1 Aviv with 6 grades פלט Yosi 12345 Ranana 70 80 45 17 Ron 65432 Tel-Aviv 90 72 65 Aviv 52312 Haifa 76 98 13 87 16 Dana 54321 Netanya 37 64 87 100 f1

18 http://www.netanya.ac.il/ahmad18 The Awk Utility – example17 BEGIN {n=0} /Aviv/ {n=n+1} END {print "Aviv occurs",n,"times."} p1 Aviv occurs 2 times. פלט Yosi 12345 Ranana 70 80 45 17 Ron 65432 Tel-Aviv 90 72 65 Aviv 52312 Haifa 76 98 13 87 16 Dana 54321 Netanya 37 64 87 100 f1

19 http://www.netanya.ac.il/ahmad19 The Awk Utility – example18 END {print $0} p1 Dana 54321 Netanya 37 64 87 100 פלט Yosi 12345 Ranana 70 80 45 17 Ron 65432 Tel-Aviv 90 72 65 Aviv 52312 Haifa 76 98 13 87 16 Dana 54321 Netanya 37 64 87 100 f1

20 http://www.netanya.ac.il/ahmad20 The Awk Utility – example19 { sum=0; for (i=4;i<=NF;i++) sum=sum+$i; print $1,"Average is",sum/(NF-3); } p1 Yosi Average is 53 Ron Average is 75.6667 Aviv Average is 58 Dana Average is 72 פלט Yosi 12345 Ranana 70 80 45 17 Ron 65432 Tel-Aviv 90 72 65 Aviv 52312 Haifa 76 98 13 87 16 Dana 54321 Netanya 37 64 87 100 f1

21 http://www.netanya.ac.il/ahmad21 The Awk Utility – example20 BEGIN {maxAvg=0; Name=""} { sum=0; for (i=4;i<=NF;i++) sum=sum+$i; print $1,"Average is",sum/(NF-3); if (maxAvg < sum/(NF-3) ) { maxAvg=sum/(NF-3); Name=$1; } END {print Name,"with", maxAvg} p1 Yosi Average is 53 Ron Average is 75.6667 Aviv Average is 58 Dana Average is 72 Ron with 75.6667 פלט Yosi 12345 Ranana 70 80 45 17 Ron 65432 Tel-Aviv 90 72 65 Aviv 52312 Haifa 76 98 13 87 16 Dana 54321 Netanya 37 64 87 100 f1

22 http://www.netanya.ac.il/ahmad22 The Awk Utility – example21 {Line[NR] = $0 } END {var = NR; while (var > 0) { print line[var] var -- } p1 Dana 54321 Netanya 37 64 87 100 Aviv 52312 Haifa 76 98 13 87 16 Ron 65432 Tel-Aviv 90 72 65 Yosi 12345 Ranana 70 80 45 17 פלט Yosi 12345 Ranana 70 80 45 17 Ron 65432 Tel-Aviv 90 72 65 Aviv 52312 Haifa 76 98 13 87 16 Dana 54321 Netanya 37 64 87 100 f1

23 http://www.netanya.ac.il/ahmad23 The Awk Utility – example22 (05/2/a) BEGIN {max=0} NF > max { max=NF; sum=0; for (k=1;k<=NF;k++) sum=sum+$k; } END {print sum} p1 82 פלט 12 30 40 100 10 20 f1

24 http://www.netanya.ac.il/ahmad24 The Awk Utility – example23 (2006 moed a) כתוב/כתבי תוכנית ב- awk בשם P2 שמקבלת פרמטר אחד שהינו שם קובץ (בהמשך נקרא לו קובץ 1). הנח/י שהתוכן של קובץ 1 הוא מטריצה של מספרים. המספרים בכל שורה בקובץ 1 מופרדים ע"י תו רווח אחד או יותר. התוכנית תדפיס Yes אם מתקיים לפחות אחד משני התנאים הבאים: (1) סכום המספרים בכל שורה בקובץ הינו קבוע, (2) סכום המספרים בכל עמודה בקובץ הינו קבוע,אחרת התוכנית תדפיס No. לדוגמה, נניח שתוכן הקובץ F הוא: 10 30 40 14 26 40 ותוכן הקובץ F2 הוא: 11 9 4 2 1 3 8 10 1 1 לאחר הפעלת התוכנית ע"י הפקודה: >awk -f P2 F יתקבל הפלט: Yes לאחר הפעלת התוכנית ע"י הפקודה: >awk -f P2 F2 יתקבל הפלט: Yes

25 http://www.netanya.ac.il/ahmad25 The Awk Utility – example23 (2006 moed a) { for (i=1;i<=NF;i++) { col[i]=col[i]+$i row[NR]=row[NR]+$i } END { for (i=1;i<NF;i++) if ( col[i]!=col[i+1]){ for (i=1;i<NR;i++) if (row[i]!=row[i+1]) { print "No" exit } break } print "Yes" }

26 http://www.netanya.ac.il/ahmad26 The Awk Utility – example24 { for(k=1;k<=NF;k++) A[ARGIND,FNR,k]=$k; } END { for (i=1;i<=FNR;i++) { for (j=1;j<=NF;j++) { for (k=1;k<=ARGIND;k++) sum+=A[k,i,j]; printf("%-5d",sum); sum=0; } printf("\n"); }

27 http://www.netanya.ac.il/ahmad27 The Awk Utility – example25 { for(k=1;k<=NF;k++) A[0,FNR,k]+=$k; } END { for (i=1;i<=FNR;i++) { for (j=1;j<=NF;j++) printf("%-5d",A[0,i,j]); printf("\n"); }

28 http://www.netanya.ac.il/ahmad28 The Awk Utility – example21 (2006 moed a) http://www.dc.turkuamk.fi/docs/gnu/awk/gawk_toc.html איך ממשיכים הלאה ?


Download ppt "יסודות מערכות פתוחות ג ' בארה אחמד המכללה האקדמית נתניה The Awk Utility."

Similar presentations


Ads by Google