Basic Uses
$ cat score.txt
Group Name English Math History Science
A Mina 82 67 93 98
A Joan 66 45 59 30
B Kevin 95 100 91 100
B Noa 92 99 95 97
A Tom 83 80 74 88
B David 83 69 99 65
$ awk /A/ score.txt
A Mina 82 67 93 98
A Joan 66 45 59 30
A Tom 83 80 74 88
$ awk '$2 - /Tom/' score.txt
A Tom 83 80 74 88
$ awk '$1 - !/A/' score.txt
Group Name English Math History Science
B Kevin 95 100 91 100
B Noa 92 99 95 97
B David 83 69 99 65
$ awk '$1 == "A" {print $0}' score.txt
A Mina 82 67 93 98
A Joan 66 45 59 30
A Tom 83 80 74 88
$ awk '{if($1 == "B") print $0}' score.txt
B Kevin 95 100 91 100
B Noa 92 99 95 97
B David 83 69 99 65
$ awk '{print $2}' score.txt
Name
Mina
Joan
Kevin
Noa
Tom
David
$ awk '{print $3, $4, $3+$4}' score.txt
English Math 0
82 67 149
66 45 111
95 100 195
92 99 191
83 80 163
83 69 152
$ awk '{s = $3+$4; print $0, s}' score.txt
Group Name English Math History Science 0
A Mina 82 67 93 98 149
A Joan 66 45 59 30 111
B Kevin 95 100 91 100 195
B Noa 92 99 95 97 191
A Tom 83 80 74 88 163
B David 83 69 99 65 152
Useing File
$ cat add
{sum = $3 + $4 + $5 + $6; print $0, sum}
$ awk -f add score.txt
Group Name English Math History Science 0
A Mina 82 67 93 98 340
A Joan 66 45 59 30 200
B Kevin 95 100 91 100 386
B Noa 92 99 95 97 383
A Tom 83 80 74 88 325
B David 83 69 99 65 316
BEGIN and END
$ cat GradeA
BEGIN {
print "----------------------------"
print "Students List with Grade A"
print "----------------------------"
}
{
mean = ($3 + $4 + $5 + $6) / 4
if (mean > 90) {print $2, "Average is", mean}
}
END {
print "----------------------------"
}
$ awk -f GradeA score.txt
----------------------------
Students List with Grade A
----------------------------
Kevin Average is 96.5
Noa Average is 95.75
----------------------------
Field Separator
$ cat s.txt
Group:Name:English:Math:History:Science
A:Mina:82:67:93:98
A:Joan:66:45:59:30
B:Kevin:95:100:91:100
B:Noa:92:99:95:97
A:Tom:83:80:74:88
B:David:83:69:99:65
$ awk -F: '{print $2}' s.txt
Name
Mina
Joan
Kevin
Noa
Tom
David
$ awk -F: -f GradeA s.txt
----------------------------
Students List with Grade A
----------------------------
Kevin Average is 96.5
Noa Average is 95.75
----------------------------