【发布时间】:2015-04-10 10:08:58
【问题描述】:
我正在尝试匹配匹配 3 种不同模式的 3 行,一个接一个,并使用 sed 仅删除第一个和最后一个:
patternABC
patternDEF
patternGHI
我正在使用这样的东西,当然会删除所有行,但我需要离开 patternDEF 并只删除 patternABC 和 patternGHI。
sed -e '/patternABC/{N;/patternDEF/{N;/patternGHI/d}}'
【问题讨论】:
-
所以如果 line1、line2 和 line3 完全匹配,您只想保留 line2?最好提供一个更广泛的示例以及所需的输出,以使其更加清晰。
-
是的,如果我有 line1、line2 和 line3 我想删除 line1 和 line3 并且只剩下 line2 作为输出
-
是否存在 3 种不同的模式或单个模式出现 3 次?
-
3 种不同的模式,因为我以不同的方式命名它们,比方说
abc def ghi
所以我想删除匹配“abc”和“ghi”的行,前提是它们之间有 "def" ,所以技术上我想离开 "def" -
不要在 cmets 中澄清问题:只需使用“编辑”按钮更新它。这对每个人都是最好的:你会得到更多的关注,可能的回答者也会有更清晰的视野。