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

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

问题描述

考虑我有以下数据流:

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 attrib1grep 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屋!

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