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

GCP: Google Cloud Shell

Google Cloud Shell is a tool for managing resources hosted on Google Cloud Platform! The machine comes pre-installed with the Google Cloud SDK and other popular developer tools.

GitHub CLI

GitHub CLI brings GitHub to your terminal. Free and open source. Official website: https://cli.github.com

[Microsoft Outlook]: Set .pst and .ost files location with ForcePSTPath Registry Key

Set .pst and .ost files location with ForcePSTPath Registry Key The ForcePSTPath registry key is supported by Microsoft Outlook 2003 and later. In Microsoft Outlook 2003 and 2007, it applies to new profiles only. Microsoft Outlook 2013 and Outlook 2016 it applies to new accounts created in a profile. Microsoft Outlook 2013 saves .pst in   %userprofile%\Documents\Outlook Files folder by default. We can change that default setting by adding a new string registry key called ForcePSTPath and set the value to the folder that we want to save those files. Set Microsoft Outlook 2013 always save new .pst and .ost files to D:\Data\Mail folder OST file reached the maximum size The OST File Has Reached The Maximum Size