2013-03-25 148 views
0

我怎麼能過濾出包含canvasbenchtracing_mark_write的行如下所示的句子?grep使用正則表達式「和」

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

'canvasbench'會不會在開始? – 2013-03-25 06:52:11

+0

不,沒有必要。 – pierrotlefou 2013-03-25 06:54:33

回答

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'

2

或者您可以使用SED:

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

它試圖匹配匹配canvasbench並打印線匹配這兩條線tracing_mark_write。