Script ksh fonction sed

Fermé
moustik - 25 oct. 2007 à 15:43
 moustik - 25 oct. 2007 à 16:51
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 "/"
A voir également:

3 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
25 oct. 2007 à 16:05
Salut,

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

Pas mal plus facile avec awk.

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


A+
0
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