我有两个不同的greps,如下面
grep -on "\w*_text1 \w*" test.log
grep -n "text2" test.log
如何将它们组合成一个?
基本上,我必须打印包含_text1
的字词和包含text2
的字词
预期结果:
1:地址的 _text1
2:12:53:32.087 INFO .... - 保存 text2
3:电话的 _text1
4:12:53:33.087 INFO .... - 正在更新 text2
答案 0 :(得分:2)
假设你只想要综合结果,这应该做:
grep -on "\w*_text1 \w*\|.*text2.*" test.log
说明:
\|
合并。.*
包围,以匹配整行;这有效地禁用了该特定模式的-o
。示例输出:
$ cat test.log
not this
begin foo_text1 bar end
and not this
hello text2 bye
finally not this
$ grep -on "\w*_text1 \w*" test.log
2:foo_text1 bar
$ grep -n "text2" test.log
4:hello text2 bye
$ grep -on "\w*_text1 \w*\|.*text2.*" test.log
2:foo_text1 bar
4:hello text2 bye
答案 1 :(得分:0)
使用逻辑OR:
grep -onE "_text1|text2" test.log