将grep用于多种搜索模式 [英] Using grep for multiple search patterns

查看:87
本文介绍了将grep用于多种搜索模式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

考虑我有以下数据流:

  BODY1 
attrib1:someval11
attrib2: someval12
attrib3:someval13

BODY2
attrib1:someval21
attrib2:someval22
attrib3:someval23

BODY3
attrib1:someval31
attrib2:someval32
attrib3:someval33

我想为每个BODY提取 only attrib1和attrib3 ,即

  attrib1:someval11 
attrib3: someval13
attrib1:someval21
attrib3:someval23
attrib1:someval31
attrib3:someval33

我试过了

grep'attrib1 \ | attrib3',根据<一个href =http://www.cyberciti.biz/faq/searching-multiple-words-string-using-grep/ =noreferrer>本网站,但没有任何回报。 grep attrib1 grep attrib2 会返回数据,但只针对指定的单个模式。

解决方案 >

man 页面:


-e PATTERN ,--regexp = PATTERN

使用PATTERN作为模式。这可用于指定
多个搜索模式,或用于保护以
开头的模式连字符( - )。 (-e由POSIX指定)。

编辑:
或者,您可以将模式保存在文件中,并使用 -f 选项:

  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


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 -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

这篇关于将grep用于多种搜索模式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆