если grep -A
не работает, попробуйте
awk '/pattern/ {for(i=0;i<number_of_lines;i++){print;getline}}' <filename>
остальное у седа есть еще одно грязное решение
sed -n '/pattern/ {p;n;p;n;p;...}' <filename>
здесь p-> print, n -> перейти к следующей строке. Таким образом, число р - это количество строк, которые будут напечатаны
Обновить:
чтобы использовать в качестве функции, напишите в test.sh
jobcheck(){
awk "/$1/"' {for(i=0;i<10;i++){print;getline}}' $2
}
тогда просто
source test.sh
бежать,
jobcheck "pattern" "file"
Обновление: согласно предложению Джонатана Леффлера, если какая-либо из следующих 10 строк содержит шаблон, подсчет должен начинаться с этой строки так,
pattern ->start printing from here to next 10 lines
blah
blah
pattern ->forget about the last 2 lines, start counting from here
blah
blah
Так что обновленная команда awk будет похожа
awk '/pattern/{max_line=NR+2} {if(NR<=max_line) print}' <filename>
Точно так же внутренняя проверка работы также будет изменена. Ура :)