#----------------------------------------------------------------------------- # @(#) contxsch : pattern context search in files (belonging of a same # directory) # Nom / Name : contxsch # Type / Type : job shell (UNIX) # But / Aim : recherche d'une chaine dans tous les fichiers precises en # parametre de contxsch en affichant le la ligne contenant la # chaine ainsi que la ligne situee avant et la ligne situe # apres (ces groupes de 3 lignes etant separees par une ligne # comportant des points). # Auteur / Author: Benjamin LISAN -> date creation: 01-AUG-90 # Usage / Usage : "contxsch pattern filename [filename]" # Exemple / Ex. : "contxsch 3B2 *" #----------------------------------------------------------------------------- USAGE="Usage= $0 pattern filename [filename]" case $# in 0|1) echo $USAGE # > &2 exit 1 ;; esac pattern=$1 # stocke la chaine avant decalage # save pattern before shift shift # suppression argument contenant la chaine # suppression argument containing pattern for i in $* # boucle a travers tous les noms de fichier do # loop threw all the files names case $# in 1) name="";; # pas de nom de fichier stocke # no file name saved *) name="$i: ";; # stockage du nom de fichier # save of the file name esac ;\ sed -n -e "/$pattern/{ x s!\(.*\)!$name\1!p x s!\(.*\)!$name\1!p n s!\(.*\)!$name\1!p n s!\(.*\)!$name\1!p n s!\(.*\)!$name\1!p a\\ ... }" -e h $i done