如何删除文件中第3次出现的模式


1

如何在文件中找到模式的第三次出现(注意:不在一行中)并删除包含模式的行 ñ 下面的行(比如下面的5行)。

例如。,

COVER
fafjasfj
isfapifj
ajfsdaijf
COVER
oaijfeiahf
aasdf
fafadf
df
This is a COVER                                             *
efjafa                                                      *
aifaidfj                                                    *
aifhaidfh                                                   *
idfhaifh                                                    *
aidfhiadhf                                                  *
aifhaifh
iafaishf
jgsjg
fbsfgbf

我想删除包含第三次出现的模式的完整行 COVER 以及下面的五行。这些线用表示 * 秒。 (注意: * s不是文件的一部分。


目前尚不清楚你究竟在问什么。您是否正在寻找您在某处指定的任何文本或文本的第3次出现?它总是5行还是变量?
fixer1234

我想删除特定文本的第3次出现以及下面的几行,即5是变量as
Mukesh Babu

Answers:


1
$ awk '$1=="COVER"{l++}l==3{l2++} l!=3 || l2>6' file
COVER
fafjasfj
isfapifj
ajfsdaijf
COVER
oaijfeiahf
aasdf
fafadf
df
aifhaifh
iafaishf
jgsjg
fbsfgbf

最后 {print} 语句不是必需的,因为默认情况下, awk 在真实条件下打印当前行。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.