Rechercher : dans
Par :

Script ksh fonction sed

Dernière réponse le 25 oct 2007 à 16:51:15 moustik, le 25 oct 2007 à 15:43:27 
 Signaler ce message aux modérateurs

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 "/"

Meilleures réponses pour « Script ksh fonction sed » dans :
Sed - Introduction à SED - Part II VoirSED - The Stream EDitor - Part II Ce document est une introduction à la pratique et à l'utilisation de l'éditeur de flux "SED", qui essaie de couvrir certaines fonctionnalités assez méconnues, pour ne pas dire "quasi inconnues", qui font de "SED"...
Sed - Introduction à SED - Part III VoirSED - The Stream EDitor - Part III Ce document est une introduction à la pratique et à l'utilisation de l'éditeur de flux "SED", qui essaie de couvrir certaines fonctionnalités assez méconnues, pour ne pas dire "quasi inconnues", qui font de "SED"...

1

lami20j, le 25 oct 2007 à 16:05:52

Salut,

pourquoi pas tout simplement

df -h | awk '{print $1" "$5" "$6}'
?!
lami20j

Répondre à lami20j

2

davlar_99, le 25 oct 2007 à 16:08:24

Bonjour,

Pas mal plus facile avec awk.

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


A+

Répondre à davlar_99

3

 moustik, le 25 oct 2007 à 16:51:15

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 "/"

Répondre à moustik
Collection CommentÇaMarche.net