grep使用正则表达式“和”

时间:2013-03-25 06:49:44

标签: regex grep

我如何过滤掉包含canvasbenchtracing_mark_write的行,如下所示?

 canvasbench-16333 [003] ...1 87432.398788: tracing_mark_write: B|16333|performTraversals\n\

2 个答案:

答案 0 :(得分:2)

grep中没有AND运算符。但是,您可以使用grep -E选项模拟AND。

grep -E 'canvasbench.*tracing_mark_write|tracing_mark_write.*canvasbench' filename

或者,您可以使用由管道分隔的多个grep命令来模拟AND。

grep -E 'canvasbench' filename | grep -E 'tracing_mark_write'

答案 1 :(得分:2)

或者你可以使用sed:

sed -n '/canvasbench/{/tracing_mark_write/p}' input

尝试在匹配canvasbench的行上匹配tracing_mark_write并打印与两者匹配的行。