考虑我有以下数据流:
BODY1
attrib1: someval11
attrib2: someval12
attrib3: someval13
BODY2
attrib1: someval21
attrib2: someval22
attrib3: someval23
BODY3
attrib1: someval31
attrib2: someval32
attrib3: someval33
Run Code Online (Sandbox Code Playgroud)
我想只为每个BODY 提取attrib1和attrib3,即
attrib1: someval11
attrib3: someval13
attrib1: someval21
attrib3: someval23
attrib1: someval31
attrib3: someval33
Run Code Online (Sandbox Code Playgroud)
我试过了
grep 'attrib1\|attrib3'根据这个网站,但没有返回任何内容. grep attrib1并grep attrib2返回数据,但仅针对指定的单个模式.
axi*_*iom 21
grep -e 'attrib1' -e 'attrib3' file
从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
Run Code Online (Sandbox Code Playgroud)
Ste*_*Scm 13
非常简单的命令:
bash> grep "attrib1\|attrib3" <file.name>
Run Code Online (Sandbox Code Playgroud)
attrib1: someval11
attrib3: someval13
attrib1: someval21
attrib3: someval23
attrib1: someval31
attrib3: someval33
Mik*_*uch 11
也是egrep;
egrep "pattern1|pattern2|pattern3" file
Run Code Online (Sandbox Code Playgroud)