Daily Hack #day21 - AWK

The awk command is a powerful text processing tool that's perfect for manipulating data files in Unix environments. Here are some useful tricks and hacks with awk:
File called data.txt contents:
banana, apple, avocado
orange, grapes, tomato
spinach, carrots, banana
orange, garlic, pear
Field Extraction:
This prints the first, second and third field of each line in the file.
awk '{print $1}' data.txt
output:
banana, orange, spinach, orange
awk '{print $2}' data.txt
output:
apple, grapes, carrots, garlic
awk '{print $3}' data.txt
output:
avocado tomato banana pear
Field Separator:
awk -F',' '{print $1}' data.txt
output:
banana orange spinach orange
awk -F',' '{print $2}' data.txt
output:
apple grapes carrots garlic
This sets the field separator to en empty space (',') and prints the first field of each line. Due to the nature of our simple data.txt file, it has the same outcome as the first example bit without actually printing the comma.
Replacing Text:
awk '{gsub("banana", "berry", $0); print $0}' data.txt
output:
berry, apple, avocado orange, grapes, tomato spinach, carrots, berry orange, garlic, pear
This replaces all occurrences of the old value banana with the new value berry in each line and prints the modified lines.
Counting Lines:
awk 'END {print NR}' data.txt
output:
4
Unique Values:
Find out how many unique values are there in the first column.
awk -F, 'NR>0{print $1}' data.txt | sort | uniq | wc -l
output:
3
Find out how many unique values are there in the second column.
awk -F, 'NR>0{print $2}' data.txt | sort | uniq | wc -l
output:
4
These are just 4 simple examples of what the awk command can do. It's a versatile tool with a lot of potential for text processing tasks.




