Awk is geared toward text processing and report generation, yet features many well-designed features that allow for serious programming. And, unlike some languages, awk's syntax is familiar, and borrows some of the best parts of languages like C, python, and bash (although, technically, awk was created before both python and bash). Awk is one of those languages that, once learned, will become a key part of your strategic coding arsenal.
Let's go ahead and start playing around with awk to see how it works.
pattern { action }
awk '{ print }' /etc/fstab
LABEL=/ / ext4 defaults,noatime 1 1
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/mnt/myswapfile swap swap defaults 0 0
$ awk '{ print $0 }' /etc/fstab
LABEL=/ / ext4 defaults,noatime 1 1
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/mnt/myswapfile swap swap defaults 0 0
awk '{ print "aodba" }' /etc/fstab
aodba
aodba
aodba
aodba
aodba
aodba
aodba
awk -F":" '{ print $1 }' /etc/passwd
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
uucp
operator
games
gopher
ftp
nobody
rpc
ntp
saslauth
awk -F":" '{ print $1 $3 }' /etc/passwd
root0
bin1
daemon2
adm3
lp4
sync5
shutdown6
halt7
mail8
uucp10
operator11
games12
awk -F":" '{ print $1 " " $3 }' /etc/passwd
root 0
bin 1
daemon 2
adm 3
lp 4
sync 5
shutdown 6
halt 7
mail 8
uucp 10
operator 11
awk -F":" '{ print "username: " $1 "ttuid:" $3 }' /etc/passwd
username: root uid:0
username: bin uid:1
username: daemon uid:2
username: adm uid:3
username: lp uid:4
username: sync uid:5
username: shutdown uid:6
username: halt uid:7