Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 2 additions & 5 deletions 05.awk
Original file line number Diff line number Diff line change
@@ -1,5 +1,2 @@
# Use variable to count each occurrence of mechanical engineer

BEGIN { count = 0 }
$6 == "MechanicalEngineer" { count += 1 }
END { print count }
$6 == "MechanicalEngineer" { count++ }
END { print count }
7 changes: 4 additions & 3 deletions 08.awk
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/^FirstName/ {
for (i=1; i<8; i++)
printf "%d - %s\n", i, $i
NR==1 {
for (i=1; i<NF; i++)
print i, "-", $i
exit
}
15 changes: 4 additions & 11 deletions 12.awk
Original file line number Diff line number Diff line change
@@ -1,15 +1,8 @@
BEGIN {
highest = 0
name = ""
}

$0 !~ /HourlyWage/ {
if ($4 > highest) {
highest = $4
name = sprintf("%s %s", $1, $2)
}
NR>1 && ($4 > highest) {
highest = $4
name = sprintf("%s %s", $1, $2)
}

END {
printf "%s worked the most hours at %d\n", name, highest
print name, "worked the most hours at ", highest
}
9 changes: 1 addition & 8 deletions 13.awk
Original file line number Diff line number Diff line change
@@ -1,10 +1,3 @@
#!/usr/bin/awk -f

{
for (i = 3; i <= NF; i++) {
#printf FS$i
printf "%s\t", $i
}
print NL
}

{$1="";$2="";print(substr($0,3))}
9 changes: 1 addition & 8 deletions 14.awk
Original file line number Diff line number Diff line change
@@ -1,11 +1,4 @@
#!/usr/bin/awk -f

{
printf "%s:\t", NR
for (i = 3; i <= NF; i++) {
#printf FS$i
printf "%s\t", $i
}
print NL # New line
}
{$1="";$2="";print(NR,substr($0,3))}

9 changes: 0 additions & 9 deletions 15-awk.sh

This file was deleted.

5 changes: 5 additions & 0 deletions 15.awk
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/usr/bin/awk -f

NR>1 {A[$5]+=1}
END {print length(A)}

19 changes: 3 additions & 16 deletions 16.awk
Original file line number Diff line number Diff line change
@@ -1,17 +1,4 @@
function getName(first, last) {
return sprintf("%s %s", $1, $2)
}
#!/usr/bin/awk -f

BEGIN {
sum = 0
count = 0
}

$0 !~ /HourlyWage/ {
sum += $3
count += 1
}

END {
printf("The average wage is %.2f per hour\n", sum / count)
}
NR>1 {S+=$3}
END {print S/(NR-1)}
3 changes: 3 additions & 0 deletions 16b-awk.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/bin/sh -eu

awk 'NR>1{print $3}END{print int(NR/2) > "/tmp/foo" }' payroll.tsv | sort -n | head -n $(cat /tmp/foo) | tail -n 1
22 changes: 3 additions & 19 deletions 17.awk
Original file line number Diff line number Diff line change
@@ -1,20 +1,4 @@
function getName(first, last) {
#return sprintf("%s%s", first, last)
return first last
}
#!/usr/bin/awk -f

BEGIN {
count = 0
marker = 9999
}

$1 !~ /FirstName/ {
if (names[getName($1, $2)] == marker) {
count += 1
}
names[getName($1, $2)] = marker
}

END {
printf("There are %d people out of %d with identical first and last names\n", count, NR)
}
++A[$1$2]==2 {T++}
END {print T}
36 changes: 4 additions & 32 deletions 18.awk
Original file line number Diff line number Diff line change
@@ -1,33 +1,5 @@
function getName(first, last) {
return sprintf("%s %s", $1, $2)
}
#!/usr/bin/awk -f

BEGIN {
lowestYear = 9999
lowestMonth = 99
lowestDay = 99
name = ""
}

$0 !~ /HourlyWage/ {
split($7, date, "/")
if (date[1] < lowestYear) {
lowestYear = date[1]
lowestMonth = date[2]
lowestDay = date[3]
name = getName($1, $2)
}
if (date[1] == lowestYear && date[2] < lowestMonth) {
lowestMonth = date[2]
lowestDay = date[3]
name = getName($1, $2)
}
if (date[1] == lowestYear && date[2] == lowestMonth && date[3] < lowestDay) {
lowestDay = date[3]
name = getName($1, $2)
}
}

END {
printf "%s was the first employee hired on %d/%d/%d\n", name, lowestYear, lowestMonth, lowestDay
}
BEGIN {d="9999/99/99"}
NR>1&&$NF<d {r=$1" "$2": "$NF;d=$NF}
END {print r}