awk - common awk commands.
Find device names "sd" or with major number 4 and device name "tty". Print
the
record number NR, plus the major number and minor number.
$ awk '$2 == "sd"||$1 == 4 && $2 == "tty" { print NR,$1,$2}'
/proc/devices
Find device name equal to "sound".
$ awk '/sound/{print NR,$1,$2}' /proc/devices
Print the 5th record, first field, in file test
$ awk 'NR==5{print $1}' test
Print a record, skip 4 records, print a record etc from file1
$ awk '(NR-1) % 4 == 0 {print $1}' file1
Print all records except the last one from file1
$ tac file1|awk 'NR > 1 {print $0}'|tac
Print A,B,C ..Z on each line, cycling back to A if greater than 26 lines
$ awk '{ print
substr("ABCDEFGHIJKLMNOPQRSTUVWXYZ",(NR-1)%26+1,1),$0}' file1
Number of bytes in a directory.
$ ls -l|awk 'BEGIN{ c=0}{ c+=$5} END{ print c}'
Remove duplicate, nonconsecutive line. As an advantage over "sort|uniq"
you can eliminate duplicate lines in an unsorted file.
$ awk '! a[$0]++' file1
Or the more efficient script
$ awk '!($0 in a) {a[$0];print}' file1
Print only the lines in file1 that have 80 characters or more
$ awk 'length < 80' file1
Print line number 25 on an extremely large file -- note it has
to be efficient and exit after printing line number 25.
$ awk 'NR==25 {print; exit}' verybigfile