【发布时间】:2019-06-18 19:20:01
【问题描述】:
我在日志中的内容。
---POLICIES WITH 172.25.22.16 AS SOURCE ADDRESS---
---POLICIES WITH 172.25.22.16 AS DESTINATION ADDRESS---
---POLICIES WITH 172.25.22.17 AS SOURCE ADDRESS---
some output
---POLICIES WITH 172.25.22.17 AS DESTINATION ADDRESS---
---POLICIES WITH 172.25.22.18 AS SOURCE ADDRESS---
some output
---POLICIES WITH 172.25.22.18 AS DESTINATION ADDRESS---
---POLICIES WITH 172.25.22.19 AS SOURCE ADDRESS---
想要什么
---POLICIES WITH 172.25.22.16 AS SOURCE ADDRESS---
None
---POLICIES WITH 172.25.22.16 AS DESTINATION ADDRESS---
None
---POLICIES WITH 172.25.22.17 AS SOURCE ADDRESS---
some output
---POLICIES WITH 172.25.22.17 AS DESTINATION ADDRESS---
None
---POLICIES WITH 172.25.22.18 AS SOURCE ADDRESS---
some output
---POLICIES WITH 172.25.22.18 AS DESTINATION ADDRESS---
None
---POLICIES WITH 172.25.22.19 AS SOURCE ADDRESS---
None
我试过 sed 's:---\n---:----\nNone\n---/:g' 没有这样做。 我需要对所有以 --- 结尾的行进行一些替换,仅当下一行以 --- 开头时
【问题讨论】:
-
默认情况下,Sed 不能匹配跨行的模式。它一次只读取一个以换行符结尾的输入行。你可以让它读得更多,但到那时你就到了 sed 的 weird 部分。
-
行是否以
---开头或---前面是否有空格,如果您的示例中有空格,下面的大多数答案都不起作用。