Consider I have the following stream of data:
BODY1
attrib1: someval11
attrib2: someval12
attrib3: someval13
BODY2
attrib1: someval21
attrib2: someval22
attrib3: someval23
BODY3
attrib1: someval31
attrib2: someval32
attrib3: someval33
I want to extract only attrib1 and attrib3 for each BODY, i.e.
attrib1: someval11
attrib3: someval13
attrib1: someval21
attrib3: someval23
attrib1: someval31
attrib3: someval33
I tried
grep 'attrib1\|attrib3'
, according to this site but that returned nothing. grep attrib1
and grep attrib2
do return data but just for the single pattern specified.
grep command can be used for searching a pattern in more than one file.
Use "extended grep" and the OR operator ( | ). Yes, you're right.
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With