diff --git a/divers/IhfdCat b/divers/IhfdCat new file mode 100755 index 0000000..bca87be --- /dev/null +++ b/divers/IhfdCat @@ -0,0 +1,108 @@ +#! /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