#! /bin/sh -e #**************************************************************** # hfdCat # # - Fonction qui effectue un cat sur l'ensemble des fichiers # contenus dans un HFD file # # - Les parametres : # Nom du (ou des) HFD file(s) # # Auteur : Laurent SCHMITT # Date : 12 Janvier 1992 # Modifications : P. CHARPENTIER (15/12/1993) # Ajout de set -e qui interromp le shell quand # une commande du shell retourne une valeur # d'exit differente de 0 # # P. CHARPENTIER (15/12/1993) # Harmonisation des sorties exit : quand il y a # une erreur, sortie avec exit(200), a la fin du # main de exit (0) (tout s'est bien termine). # # D. BESAGNI (10/01/1994) # restriction de cat aux fichiers de type : # hfdfile/*.dd/*.df # possibilite de concatener plusieurs hfdfiles. # # D. BESAGNI (23/02/1995) # Correction d'un bug concernant le cas du cat # de plusieurs HFD files # # D. BESAGNI (11/02/2002) # modification destinée à permettre de traiter # des HFD à plusieurs niveaux. # # D. BESAGNI (22/05/2003) # vérification du type de fichier pour traiter # indifferemment des fichiers HFD compresses ou # non. # # D. BESAGNI (11/12/2019) # modification du message d’erreur en remplaçant # le nom en dur par le nom de fichier de la # variable “$0”. # #**************************************************************** traitement () { current=`pwd` cat=cat ext="" if test -d $1 then cd $1 if [ -f 00.dd/00.df.z ] then cat=gzcat ext=".[Zz]" fi for i in [0-9][0-9].dd do if test -d $i then cd $i $cat [0-9][0-9].df${ext} wait cd .. else echo "$1/$i is not a directory" fi done if [ -d A ] then for i in [A-Z] do traitement $i | perl -pe "print \"$i\"" done fi if [ -d a ] then for i in [a-z] do traitement $i | perl -pe "print \"$i\"" done fi cd $current else echo "$1 is not a directory" fi } if [ $# -eq 0 ] then prog=`basename $0` echo "usage: $prog hfd_name ..." exit 1 else while [ $# -ne 0 ] do traitement $1 shift done fi exit 0