输出匹配行

要匹配0401B6QVZ7 和下两行该如何使用awk sed grep
grep -A 2 0401B6QVZ7 file
sed -n '/0401B6QVZ7/{N;N;p}' file
awk '/0401B6QVZ7/{print;while (getline) {if (++n==3) exit;print}}' file

想要此行下的第8和第9行呢?2-7不要输出。有很多匹配都要打的话
awk '/0401B6QVZ7/{print;while (getline) {n++;if (n==8||n==9) print;if (n==9) {n=0;break}}}' file
awk '/0401B6QVZ7/{a=NR} a&&(NR==a||NR-8==a||NR-9==a)' file
 
查询以1行为中心上10行加上下10行的输出呐?
awk '{a[NR]=$0}END{for (i=1;i<=NR;i++) if (a[i]~/0401B6QVZ7/) for (j=(i-10);j<=((i+10)<NR?i+10:NR);j++) print a[j]}' file
不输出本行的话
grep -C 10 就可以了