#!/bin/sh # Par Julien MOREAU ( jmoreau@bigfoot.com ) nbps=1 # Nombre de paramètres souhaités nom_cmde=`basename $0` # Nom de la commande usage="Usage: $nom_cmde [...]" # Message d'aide usage=$usage"\n\tEnleve l'entête d'e-mail(s) sauvé(s) en fichiers." usage=$usage"\n\tCeci, quelque soit la taille de l'entête." usage=$usage"\n\t( La 1ère ligne vide sert de séparateur. )" if test `uname` != "HP-UX" ; then e="-e" ; fi if [ $# -lt $nbps -o "$1" = "-h" ] ; then # Si le nb de param est incorrecte, echo $e $usage 1>&2 ; exit 2 # Affichage aide puis arrêt. fi tmp=~/$nom_cmde.tmp for fic in $* ; do echo $e "$fic ... \c" if test ! -r $fic ; then # Si le 1er arg n'est pas un fichier lisible echo "illisible ou inexistant !" 1>&2 elif head -1 $fic|grep -qv ^From ; then echo "n'est pas un email avec entête !" 1>&2 else echo $e "mise en forme ... \c" etat=1 ; num_ligne=0 while read ligne ; do num_ligne=`expr $num_ligne + 1` case $etat in 1) if test -z "$ligne" ; then etat=2 ; fi ;; 2) if test -n "$ligne" ; then ligne_deb=$num_ligne ; etat=3 fi ;; 3) if test -z "$ligne" ; then ligne_fin=`expr $num_ligne - 1` etat=4 fi ;; 4) if test -n "$ligne" ; then etat=3 fi ;; *) echo "Etat invalide ($etat) !" 1>&2 ;; esac done < $fic diff=`expr $ligne_fin - $ligne_deb` diff=`expr $diff + 1` head -n $ligne_fin $fic|tail -$diff > $tmp # Sécurité si le fichier est vide if test -s $tmp ; then mv $tmp $fic ; else rm -f $tmp ; fi echo "OK." fi done exit 0 # Sortie sans erreur