sed删除关键字的上一行

sed删除关键字的上一行

我们知道,sed删除关键字的下一行非常简单,但删除关键字的上一行却并没那么容易

root@mail ~ # cat lines.bak 
1
2
3
4
5
#删除关键字3的下一行
root@mail ~ # cat lines.bak | sed '/3/{n;d}'
1
2
3
5
#删除关键字3的上一行
root@mail ~ # cat lines.bak | sed 'N;/\n3/!P;D'
1
3
4
5