regex - 匹配模式后打印特定的行数

标签 regex perl sed awk pattern-matching

从输入文件中每次出现“AAA”表达式后,我必须打印81行。我该怎么办?

最佳答案

以下成语描述了如何选择给定的记录范围
要匹配的特定模式:

a)从某种模式打印所有记录:

awk '/pattern/{f=1}f' file

b)按某种模式打印所有记录:
awk 'f;/pattern/{f=1}' file

c)在某些模式后打印第N条记录:
awk 'c&&!--c;/pattern/{c=N}' file

d)按某种模式打印除第N条记录以外的所有记录:
awk 'c&&!--c{next}/pattern/{c=N}1' file

e)按照某种模式打印N条记录:
awk 'c&&c--;/pattern/{c=N}' file

f)按照某种模式打印除N条记录以外的所有记录:
awk 'c&&c--{next}/pattern/{c=N}1' file

g)从某种模式打印N条记录:
awk '/pattern/{c=N}c&&c--' file

我将变量名称从“找到”的“f”更改为“计数”的“c”,其中
适当,因为它更能表达变量的实际含义。

因此,您想要上面的“e”:
awk 'c&&c--;/AAA/{c=81}' file

关于regex - 匹配模式后打印特定的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17283567/

相关文章:

javascript - 使用正则表达式仅在 JavaScript 中查找和替换完整单词

javascript - 使用 Javascript 进行域验证的正则表达式

html - Perl解析html后出现未初始化值错误

windows - UDP Server 监听广播

linux - 需要在 wsdl - grep/awk/sed 上匹配确切的句子

bash - 在名称以数字开头的目录中查找编号最高的文件名

regex - Marpa 中不区分大小写的匹配

android - 如何搜索特定格式的电子邮件列表?

regex - perl可以一次性用自己的替代词替换多个关键字吗?

sed - sed 给出的前面的正则表达式错误无效