Consider I have the following stream of data:
BODY1
attrib1: someval11
attrib2: someval12
attrib3: someval13
BODY2
attrib1: someval21
attrib2: someval2
very simple command:
bash> grep "attrib1\|attrib3" <file.name>
attrib1: someval11
attrib3: someval13
attrib1: someval21
attrib3: someval23
attrib1: someval31
attrib3: someval33
Also egrep;
egrep "pattern1|pattern2|pattern3" file
It depends on the shell you are into. grep -iw 'patter1\|patter2\|pattern3'
works on bash shell where as it doesn't work on korn shell. For korn shell we might have to try grep -e pattern1 -e patter2
and so on.
This works, with GNU grep 2.6.3
grep "attrib[13]"
or
grep "^[^0-9]*[13]:"
grep -e 'attrib1' -e 'attrib3' file
From the man
page :
-e PATTERN, --regexp=PATTERN
Use PATTERN as the pattern. This can be used to specify multiple search patterns, or to protect a pattern beginning with a hyphen (-). (-e is specified by POSIX.)
Edit :
Alternatively , you can save patterns in a file and use the -f
option :
aman@aman-VPCEB14EN:~$ cat>patt
attrib1
attrib3
aman@aman-VPCEB14EN:~$ grep -f patt test
attrib1: someval11
attrib3: someval13
attrib1: someval21
attrib3: someval23
attrib1: someval31
attrib3: someval33