Salut,
Il semblerait que sous Solaris la commande "grep" ait une option "-b" (voir man grep).
En attendant voici un petit script faisant appel à "sed", modifié par rapport à http://www.grymoire.com/Unix/Scripts/grep4.shl'original qui devrait faire l'affaire. Peut être faudra-t-il y apporter des ajustements, notamment au niveau du dernier échange entre les mémoires tampons, en fonction des fichiers "parsés" et du résultat en sortie qui risque de ne pas être parfait, n'ayant pas tous les paramètres sous la main pour tester au mieux...
#!/bin/sh
# Émulation de grep -A3 -B5 "motif" fichier
# Largement inspiré du script grep4.sh
# sur le site : http://www.grymoire.com/Unix/Sed.html#uh-56
case $# in
1);;
*) echo "Usage: $0 \motif\" < fichier";exit;;
esac;
sed -n '
'/$1/' !{
# Motif non satisfait - ajouter la ligne dans la mémoire annexe
H
# Remettez-le dans la mémoire principale (espace de travail)
x
# Ne conserver que 3 lignes dans le tampon
# 2 lignes correspondent à .*\n.*
# 3 lignes à .*\n.*\n.*
# On efface les lignes exédentaires
s/^.*\n\(.*\n.*\n.*\)$/\1/
# Mettre les 3 lignes (au plus) dans la mémoire annexe à nouveau
x
}
'/$1/' {
# Le motif est satisfait - Ajouter le contenu de la mémoire principale
# à la mémoire secondaire
H
# Prendre la ligne suivante (n) et ajouter les 4 autres (N)
n;N;N;N;N
# Ajouter le tout à la mémoire annexe
H
# Échanger le tout avec la mémoire principale
x
# Afficher les lignes
p
}'
Z'@+...che.JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.