2012-02-25 78 views
2

我可以用grep -v 'my_pattern' some_file找到所有不匹配的文件行。另外,我可以在grep的-A-B-C選項之前/之後/周圍打印幾串。但是我不能將這兩個選項結合起來,排除具有模式的行和匹配行附近的一定數量的行 - grep顯示整個文件作爲結果。例如,我有很多這樣的模式日誌:如何排除與grep或類似工具匹配的幾行?

25.02.2012 10:41:37 here goes memory state 
25MiB free 
16MiB allocated 
max free block is 4MiB 

我想過濾它們。當然,我可以編寫自定義的perl/awk腳本,但有沒有更優雅的方式來做到這一點?

+0

awk的解決方案可以在這裏找到:http://stackoverflow.com/a/9443740/851677。 – jfg956 2012-02-25 11:58:35

+0

使用sed http://stackoverflow.com/questions/4396974/sed-delete-n-lines-following-a-pattern – 2014-09-24 17:05:03

回答

0

可以使用vim文本編輯器:

:g/my_pattern/-2,//+2d 
+1

有一件事我不能undestand - 有什麼區別':g/my_pattern/-2, // + 2d'和':g/my_pattern/-2,+ 2d'?看起來他們都做同樣的事情。 – 2012-02-25 08:33:53