将 grep 用于多种搜索模式 [英] Using grep for multiple search patterns
问题描述
考虑我有以下数据流:
BODY1
attrib1: someval11
attrib2: someval12
attrib3: someval13
BODY2
attrib1: someval21
attrib2: someval22
attrib3: someval23
BODY3
attrib1: someval31
attrib2: someval32
attrib3: someval33
我想为每个 BODY 提取仅 attrib1 和 attrib3,即
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
我试过了
grep 'attrib1|attrib3'
,根据 这个网站 但没有返回任何内容.grep attrib1
和 grep attrib2
确实返回数据,但仅针对指定的单个模式.
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 -e 'attrib1' -e 'attrib3' file
来自 man
页面:
-e 模式,--regexp=模式
使用 PATTERN 作为模式.这可用于指定多个搜索模式,或保护以开头的模式连字符 (-).(-e 由 POSIX 指定.)
-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.)
或者,您可以将模式保存在文件中并使用 -f
选项:
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
这篇关于将 grep 用于多种搜索模式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!