从输入文件中每次出现“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/