Chinaunix

标题: 如何返回查找行以及前三行呢 [打印本页]

作者: leonqin0101    时间: 2010-11-02 02:30
标题: 如何返回查找行以及前三行呢
请教各位高手,我想查找一个文件中的含有regexp的行以及前三行,用sed或者awk怎么实现呢?
多谢了!
作者: yinyuemi    时间: 2010-11-02 03:21
grep专门干这个的
作者: yinyuemi    时间: 2010-11-02 04:09
本帖最后由 yinyuemi 于 2010-11-02 14:28 编辑

awk 试试这个:
  1. awk '{a[NR]=$0} END {for (i=1; i<=NR; i++) if(a[i]~/regexp/) print a[i-3],"\n"a[i-2],"\n"a[i-1],"\n"a[i]}' file
复制代码

作者: kingoftime3    时间: 2010-11-02 10:27
grep:

  1. seq 10 | grep -B 2 5
复制代码
sed:

  1. seq 10 | sed -n -e '1,3{/5/{p;q};N};:a;/5/!{N;D;ta};p'
复制代码

作者: ywlscpl    时间: 2010-11-02 10:49
awk '/xxxx/{print a[(NR+1)%4],a[(NR+2)%4],a[(NR+3)%4],$0}{a[NR%4]=$0}' file
作者: xindi10631    时间: 2010-11-02 11:05
grep是最简单的!
作者: cjaizss    时间: 2010-11-02 11:06
grep -A
作者: L_kernel    时间: 2010-11-02 23:35
grep -B num
grep --before-context=num
打印匹配的行,以及前num行~~




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