Si grep -A
no está funcionando, intente
awk '/pattern/ {for(i=0;i<number_of_lines;i++){print;getline}}' <filename>
si no, sed tiene otra solución sucia
sed -n '/pattern/ {p;n;p;n;p;...}' <filename>
aquí p- & gt; imprimir, n - & gt; llegar a la siguiente línea Así que el número de p es el número de líneas a imprimir.
Actualizar:
para usar como una función, escriba en un test.sh
jobcheck(){
awk "/$1/"' {for(i=0;i<10;i++){print;getline}}' $2
}
entonces solo
source test.sh
correr,
jobcheck "pattern" "file"
Actualizar:
según la sugerencia de Jonathan Leffler, si alguna de las siguientes 10 líneas contiene el patrón, el conteo debe comenzar desde esa línea para que
pattern ->start printing from here to next 10 lines
blah
blah
pattern ->forget about the last 2 lines, start counting from here
blah
blah
Así que el comando awk actualizado será como
awk '/pattern/{max_line=NR+2} {if(NR<=max_line) print}' <filename>
Del mismo modo, dentro de la comprobación de trabajo también se cambiará. Aclamaciones:)