Created
May 30, 2020 20:34
-
-
Save tallguyjenks/ab4bffff49be090cbb61a49088cf5eff to your computer and use it in GitHub Desktop.
Awk Examples
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
#===#===#===#===#===#===#===#===#===#===#===#===#===#===#===#===#===#===#===#===# | |
# Grab a field | |
# echo "hello world this is Bryan" | awk '{print $1,$5}' | |
#===#===#===#===#===#===#===#===#===#===#===#===#===#===#===#===#===#===#===#===# | |
# Grab a column | |
# echo "ajay manager account 45000 | |
# sunil clerk account 25000 | |
# varun manager sales 50000 | |
# amit manager account 47000 | |
# tarun peon sales 15000 | |
# deepak clerk sales 23000 | |
# sunil peon sales 13000 | |
# satvik director purchase 80000" | awk '{print}' #adding $4 grabs a column | |
#===#===#===#===#===#===#===#===#===#===#===#===#===#===#===#===#===#===#===#===# | |
# Selectively output fields | |
# echo "ajay manager account 45000 | |
# sunil clerk account 25000 | |
# varun manager sales 50000 | |
# amit manager account 47000 | |
# tarun peon sales 15000 | |
# deepak clerk sales 23000 | |
# sunil peon sales 13000 | |
# satvik director purchase 80000" | awk '/manager/ {print}' | |
#===#===#===#===#===#===#===#===#===#===#===#===#===#===#===#===#===#===#===#===# | |
# Variables | |
# $0 -- The whole line | |
# echo "Hello World" | awk '{print $0}' | |
# NR -- The Number of Records | |
# echo "ajay manager account 45000 | |
# sunil clerk account 25000 | |
# varun manager sales 50000 | |
# amit manager account 47000 | |
# tarun peon sales 15000 | |
# deepak clerk sales 23000 | |
# sunil peon sales 13000 | |
# satvik director purchase 80000" | awk '{print NR}' # Adding $ to NR behaviour or adding ,$0 | |
# NF -- Number of Fields | |
# echo "ajay manager account 45000 | |
# sunil clerk account 25000 | |
# varun manager sales 50000 | |
# amit manager account 47000 | |
# tarun peon sales 15000 | |
# deepak clerk sales 23000 | |
# sunil peon sales 13000 | |
# satvik director purchase 80000" | awk '{print NF}' # Behavior of $1,NF and of $NF | |
#===#===#===#===#===#===#===#===#===#===#===#===#===#===#===#===#===#===#===#===# | |
# Format some output | |
# echo "ajay manager account 45000 | |
# sunil clerk account 25000 | |
# varun manager sales 50000 | |
# amit manager account 47000 | |
# tarun peon sales 15000 | |
# deepak clerk sales 23000 | |
# sunil peon sales 13000 | |
# satvik director purchase 80000" | awk '{print NR " - " $1}' | |
#===#===#===#===#===#===#===#===#===#===#===#===#===#===#===#===#===#===#===#===# | |
# BEGIN and END | |
# BEGIN and END are special conditionas that only get triggered once per run | |
# BEGIN gets triggered before processing any line | |
# END gets triggered after all lines have been processed | |
# echo "ajay manager account 45000 | |
# sunil clerk account 25000 | |
# varun manager sales 50000 | |
# amit manager account 47000 | |
# tarun peon sales 15000 | |
# deepak clerk sales 23000 | |
# sunil peon sales 13000 | |
# satvik director purchase 80000" | awk '{print NR}' # Add BEGIN & END | |
#===#===#===#===#===#===#===#===#===#===#===#===#===#===#===#===#===#===#===#===# | |
# Setting a delimiter | |
# echo "ajay/manager/account/45000 | |
# sunil/clerk/account/25000 | |
# varun/manager/sales/50000 | |
# amit/manager/account/47000 | |
# tarun/peon/sales/15000 | |
# deepak/clerk/sales/23000 | |
# sunil/peon/sales/13000 | |
# satvik/director/purchase/80000" | awk -F/ '{print $1,$4}' # -F can take regex '[,-/]' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment