簡體   English   中英

用sed刪除所有連續的行,但不要刪除孤立的行

[英]Delete all consecutive lines with sed, but not an isolated one

我有一個日志文件,看起來像以下文本:

...
5 files analysed in 98 ms
7 files analysed in 654 ms
   error1: ....
   error2: ....
   error3: ....
21 files analysed in 345 ms
3 files analysed in 78 ms
6 files analysed in 55 ms
...

我期待使用“ sed”或“ awk”來刪除包含模式“ in分析文件”的所有連續行,但不能刪除有用信息上方的行。

7 files analysed in 654 ms
   error1: ....
   error2: ....
   error3: ....

我從這篇文章中嘗試了一些技巧。 但是沒有什么能像我想要的那樣工作。 錯誤的數量並不總是相同的。

我該如何進行?

grep -v "files analysed in" -B 1

選擇沒有模式的所有內容,但在每次匹配之前提供一行上下文

awk

$ awk '/pattern/{p=$0} !/pattern/{print p; print}' file

foo3 pattern foo4
   some useful information

您也可以在第一場比賽后退出。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM