How to use awk to print lines where a field matches a specific string?

yael picture yael · Jun 2, 2010 · Viewed 98.6k times · Source

I have:

1 LINUX param1 value1 
2 LINUXparam2 value2
3 SOLARIS param3 value3
4 SOLARIS param4 value4

I need awk to print all lines in which $2 is LINUX.

Answer

Hank Gay picture Hank Gay · Jun 2, 2010

In awk:

awk '$2 == "LINUX" { print $0 }' test.txt

See awk by Example for a good intro to awk.

In sed:

sed -n -e '/^[0-9][0-9]* LINUX/p' test.txt

See sed by Example for a good intro to sed.