Chinaunix

标题: shell 文件最大范围行匹配 [打印本页]

作者: a6447    时间: 2015-12-17 23:33
标题: shell 文件最大范围行匹配
有一个上万行内容的文件b.log,内容如下:
...
12378 aaaaaaaaaa                 ----------待截取的开始A
12378 bbbbbbbbbbaa
12378 ccdadfdfda
12378 adfjkdfj
lkd adf
dafjk df
dflkaja d
dafkj a45
12378 adldkfn daf
12378 adl  ladjf                 ------------待截取的结束B
12379 lkadfj alkdf            
...

我希望把最开始出现“12378”至最末出到“12378”的范围内容截取出来(即AB之间的内容),其中12378为序号标识。请问应该怎么处理,谢谢

作者: MMMIX    时间: 2015-12-18 00:00
回复 1# a6447


    把文件读入数组,找到需要截取内容的第一行和最后一行的下标,即可获取其内容。
作者: yjh777    时间: 2015-12-18 09:29
awk 'BEGIN{s=0; e=0} /12378/{if (s != 0) {e=NR} else {s=NR}} END {printf("%s,%sp\n", s, e)}'  $urfile  >kkk.sed
sed -nf kkk.sed  $urfile




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2