打印匹配行开始往上N行
时间:2008-12-07 来源:ubuntuer
比如
111111111
22222222 (需要打印的)
5
aaa
............
我要打印匹配行开始上数的3行...
首先想到的当然就只是grep了,直接有选项可以使用.
grep -B3 '......' urfile
接下来就是个求通余了,有点意思^_^,下一个也就是第一个了,循环嘛^_^
awk '/....../{for(i=NR;i<NR+3;i++) print a[i%3];print}{a[NR%3]=$0}' urfile
最后就是个逆序了...
tac urfile | awk '/..../{for(i=1;i<=3;i++){getline;print}}' | tac
111111111
22222222 (需要打印的)
5
aaa
............
我要打印匹配行开始上数的3行...
首先想到的当然就只是grep了,直接有选项可以使用.
grep -B3 '......' urfile
接下来就是个求通余了,有点意思^_^,下一个也就是第一个了,循环嘛^_^
awk '/....../{for(i=NR;i<NR+3;i++) print a[i%3];print}{a[NR%3]=$0}' urfile
最后就是个逆序了...
tac urfile | awk '/..../{for(i=1;i<=3;i++){getline;print}}' | tac
相关阅读 更多 +