awk multiple record separator code example

Example 1: awk multiple delimiters

# Basic syntax:
awk -F'[:/|]' '{print $field#, $field#, ...}' input_file
# Where:
#	- : / and | are the three field delimiters considered
#	- $field# is the field nuber to be printed based on the splits made
#		by any of the delimiters

# Example usage:
# Say you have a file that contains the following lines and you want to
# extract the dir#, the file #, and the URL:
/logs/dir1/file_1 = demo.example.com
/logs/dir2/file_7 = quest.example.com
/logs/dir3/file_5 = www.example.com

# Running:
awk -F'[/_=]' '{print $3, $5, $6}' input_file

# Returns:
dir1	1	demo.example.com
dir2	7	quest.example.com
dir3	5	www.example.com

# *Note, each character contained in the braces [ ] is treated as a 
#	separate delimiter

Example 2: awk delimiter

# by default, awk uses empty space(s) as field seperator
# we can specify field seperator ourselves using -F flag

# SINGLE field seperator
echo 'a+b=c' | awk -F'=' '{print NF, $1, $2}'
# NF in awk stands for number of fields
# Returns
2	a+b 	c

# MULTIPLE field seperators
echo 'a+b=c' | awk -F'[+=]' '{print NF, $1, $2, $3}'
# Returns
3	a	b	c