Skip to main content

GNU awk

gawk - pattern scanning and processing language

AWK is named after the surnames of its three authors, who are Alfred Aho, Peter Weinberger, and Brian Kernighan.

mawk, gawk



Pre-defined variables in awk

  • $0: entire current record/line
  • $1, $2, ...: the first, second,... fields in current record/line
  • NF: number of fields
  • NR: number of records/lines

Built-in functions

Examples

Print the first column of /etc/passwd file. The /etc/passwd uses ':' (colon) as separator between columns.

$ awk -F: '{ print $1}' /etc/passwd

Print process id (PID) column

ps | print '{print $1}'

Create get_tags_pre.awk file with content

/<pre>/,/<\/pre>/ { print; }

Get all content inside <pre> tags

cat inputfile.txt | awk -f get_tags_pre.awk > outputfile.txt

Get just indented lines below "Standard IP access list 11"

root@T420:~# cat acl1.txt |  awk '/access list 11/ && !f{f=1;x=$0;sub(/[^ ].*/,"",x);x=x" ";print;next} f {if (substr($0,1,length(x))==x)print; else f=0}'
Standard IP access list 11
    10 permit 212.1.116.12

Print parent rule and subrules in checkpoint firewall

awk -F";" -v parentrule="" 'BEGIN{print "===START==="}; $2 ~ /8030 -/ || $1 ~ parentrule {split($1,array,".");parentrule=array[1]; print $0;}; END{print "\n===END===\n";}' samplerule.csv

Extract 14-character-lines from a text file

┌──(root㉿LenovoX230)-[/usr/share/seclists/Usernames]
└─# gawk "length == 14" xato-net-10-million-usernames.txt >> 14-characters.txt

References

The GNU Awk User’s Guide

Books about gawk

GAWK: Effective AWK Programming by Arnold D. Robbins

Courses about awk

Linux Administration with sed and awk | Andrew Mallett

Practice

>>> THM | Linux Modules

Popular posts from this blog

Online Learning: Free to Learn, Learn to Free

Photo Credit:  Gerd Altmann - pixabay.com Just make time to keep learning, practicing, and sharing.

Windows command: icacls

Icacls is a command-line utility that can be used to display or modify discretionary access control lists (DACLs) on specified files, and apply stored DACLs to files in specified directories.

Install the .NET Core Windows Server Hosting bundle

Remember to schedule in advance, since IIS must be reset after installing .NET Core Windows Server Hosting bundle.