Print the fist row with check the condition in awk command

Viewed 38

File in content is

safwan@hello:~/linx$ cat 5.txt 
Name    age address email
safwan  25  India   safwan@gmail.com
Ajmal   23  India   ajmal@gmil.com

Apply a condition

awk '$2==25 {print}' 5.txt

output is

safwan@hello:~/linx$ awk '$2==25 {print}' 5.txt 
safwan  25  India   safwan@gmail.com

But I need also the first row

I expect the output is like

Name    age address email
safwan  25  India   safwan@gmail.com
1 Answers

You can evaluate if NR == 1 or your actual condition to get the header row with your data row:

awk 'NR == 1 || $2 == 25' 5.txt

Besides there is no need to use {print} as that is the default action in awk.

Related