Unix从第X行或找到Z后的前100行打开文件

Unix从第X行或找到Z后的前100行打开文件,unix,grep,cat,hp-ux,Unix,Grep,Cat,Hp Ux,我有一个2GB的文本文件,我想在找到某个字符串后读取每行100行 例如: string在第5000行找到,因此我想从5000到5100读取文件 然后在第15000行也找到了字符串,因此我想从15000到15100读取文件 等等 使用的系统是HP-UX B.11.31 U这可能适合您(未经测试),如果您理解ll2p的意思是打印的最后一行应该很容易阅读 awk '/pattern/ {ll2p = NR+100} NR < ll2p {print} NR==ll

我有一个2GB的文本文件,我想在找到某个字符串后读取每行100行 例如:

string
在第5000行找到,因此我想从5000到5100读取文件 然后在第15000行也找到了
字符串
,因此我想从15000到15100读取文件 等等

使用的系统是HP-UX B.11.31 U

这可能适合您(未经测试),如果您理解
ll2p
的意思是
打印的最后一行
应该很容易阅读

awk '/pattern/ {ll2p = NR+100}
        NR < ll2p {print}
        NR==ll2p {ll2p=0} ' file
awk'/pattern/{ll2p=NR+100}
NR
能否更新指示操作系统的标签?看起来你是在Solaris上,或者AIXI会建议编译和安装(如果你没有root访问权限,可能使用
/configure--prefix=$HOME/soft/
)U使用
grep-A100
,就像在删除的公司服务器中建议的那样:D无法按照我的意愿进行这些安装…不幸的是,我尝试了,但它没有输出任何东西。。。也许是因为模式中的“”的原因???awk'/epicvar(string)=“5”/{ll2p=NR+100}NRawk'/epicvar.*string.*5/..
awk '/pattern/ {ll2p = NR+100}
        NR < ll2p {print}
        NR==ll2p {ll2p=0} ' file