linux's docs

12.3.1: sed应用-删除前后n行


1. 目的

删除匹配字符前3行到后3行之间的内容

2. 完成思路

先用变量存储匹配内容的行号,然后删除该行号前后3行之间的内容
为了应对多行匹配的情况,做了个for循环

3. 核心实现命令

## 文件是a.txt
## 匹配字符是555
for i in `cat a.txt |nl |sed -n '/555/ p'|awk '{print $1}'`;\
do sed -i "$[$i-3],$[$i+3] d" a.txt; done

Contents