Script ksh fonction sed

Bonjour,

Novice en scripting /bin/ksh j'aurais besoin d'un coup de pouce.
Machine : SunOS I386 Solaris5.10

Voici l'idée :

En fait, je souhaite faire une fonction le but étant de faire ressortir qu'une partie du df -h avec sed.
en gros avoir uniquement le nom du disk la dénomination et l'espace utilisé en pourcentage (eg"c0t0d0s0 / 70%")

Dans mon script de base la ligne de commande au complet ci-dessous fonctionne.
echo "toto" `df -h /|grep %| sed -e 's/[0-9].[0-9]G//g' -e 's/[0-9].[0-9]M//g' -e 's/[0-9]G//g' -e 's/[0-9]M//g' -e 's#/dev/dsk/#/#g'` "\n" >> $LOG &&

Ma tentative étant de créer une fonction pour éviter d'avoir a reprendre la ligne de commande qui prend bcp de caractère.
Par contre ma tentative avec la création de la fonction ci-dessous ne marche pas. Quelqu'un a une idée? Merci

Voici mon script

#!/bin/ksh
#
DATE=`date '+%y%m%d%H%M'`
LOG=/var/log/autosed$DATE.log
export LOG
DEBUG=echo

#fonction permettant d'afficher que le pourcentage d'espace utilisé sur une partition type.

call_sed()
{
sedcmd=`grep % | sed -e 's/[0-9].[0-9]G//g' -e 's/[0-9].[0-9]M//g' -e 's/[0-9]G//g' -e 's/[0-9]M//g' -e 's#/dev/dsk/#/#g'` >> $LOG
df -h $1 | $sedcmd
}
call_sed "/"

3 réponses

  1. Modérateur
    Salut,

    pourquoi pas tout simplement
    df -h | awk '{print $1" "$5" "$6}'
    ?!
    0
    1. Bonjour,

      Pas mal plus facile avec awk.

      df -h |awk '{print $1 "\t" $4}'

      A+
      0
      1. yes effectivement plus simple merci. C'est les débuts donc peut-être je vais chercher trop loin puis aussi j'aimerais prendre l'habite de faire des fonctions.

        Dans ce cas j'aurais cette ligne pour chaque partition :

        df -h / | awk '{print $1" "$5" "$6}' | sed -e 's#/dev/dsk/#/#g'

        alors si je veux faire une fonction ça donnerais le script ci-dessous. Sauf qu'il me manque encore un bout ou il y a une erreur sur la recherche du df et de la valeur :

        #!/bin/ksh
        #
        DATE=`date '+%y%m%d%H%M'`
        LOG=/var/log/autosed$DATE.log
        export LOG

        #fonction permettant d'afficher que le pourcentage d'espace utilisé sur une partition type.

        call_sed()
        {
        sedcmd=` awk '{print $1" "$5" "$6}' | sed -e 's#/dev/dsk/#/#g'` >> $LOG
        df -h $1 | $sedcmd
        }
        call_sed "/"
        0