I have
1 LINUX param1 value1
2 LINUXparam2 value2
3 SOLARIS param3 value3
4 SOLARIS param4 value4
need by awk to pring all lines that $2 is LINUX THX
I have
1 LINUX param1 value1
2 LINUXparam2 value2
3 SOLARIS param3 value3
4 SOLARIS param4 value4
need by awk to pring all lines that $2 is LINUX THX
Try these out:
egrep -i '^\w+ LINUX ' myfile
awk '{IGNORECASE=1}{if ($2 == "LINUX") print}' myfile
sed -ne '/^[0-9]* [Ll][Ii][Nn][Uu][Xx] /p' myfile
edit: modified for case insensitivity
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
.
In GNU sed
case-insensitive matches can be made using the I
modifier:
sed -n '/^[^[:space:]][[:space:]]\+linux[[:space:]]\+/Ip'
Will robustly match "linux", "Linux", "LINUX", "LiNuX" and others as the second field (after the first field which may be any non-whitespace character) and surrounded by any amount (at least one) of any whitespace (primarily space and tab, although you can use [:blank:]
to limit it to strictly those).