Вот решение @ Игорь в awk
awk 'c-->0;$0~s{if(b)for(c=b+1;c>1;c--)print r[(NR-c+1)%b];print;c=a}b{r[NR%b]=$0}' b=3 a=3 s="pattern" myfile
Примечание. Замените a
и b
переменные числом строк до и после.
Это особенно полезно для системы, которая не поддерживает параметры -A
, -B
и -C
grep.