si grep -A
ne fonctionne pas, essayez
awk '/pattern/ {for(i=0;i<number_of_lines;i++){print;getline}}' <filename>
d'autre sed a une autre solution sale
sed -n '/pattern/ {p;n;p;n;p;...}' <filename>
ici p-> imprimer, n-> aller à la ligne suivante. Donc, nombre de p est votre nombre de lignes à imprimer
Mettre à jour:
utiliser comme fonction, écrire dans un test.sh
jobcheck(){
awk "/$1/"' {for(i=0;i<10;i++){print;getline}}' $2
}
alors juste
source test.sh
courir,
jobcheck "pattern" "file"
Mise à jour: selon la suggestion de Jonathan Leffler, si l'une des 10 lignes suivantes contient le motif, le comptage doit commencer à partir de cette ligne afin
pattern ->start printing from here to next 10 lines
blah
blah
pattern ->forget about the last 2 lines, start counting from here
blah
blah
Donc, la commande awk mise à jour sera comme
awk '/pattern/{max_line=NR+2} {if(NR<=max_line) print}' <filename>
De même, Jobcheck sera également modifié. À votre santé:)