bonjour
je cherche une commande unix qui me permettra de faire le test sur le contenu d'un variable dans un fichier
le fichier est:
<vc_entry>
airvci=1
dsmod=qam64
usmod=qam64
pri=2
epd=1
muxport=1
dspir=256
dscir=64
uspir=256
uscir=64
service-params
.......
.......
</vc_entry>
<vc_entry>
airvci=1
dsmod=qam64
usmod=qam64
pri=2
epd=1
muxport=1
dspir=32
dscir=32
uspir=32
uscir=32
service-params
.......
.......
</vc_entry>
cette commande sera capable de tester la valeur de (dspir) (256 et 32)
afin de choisir le plus importans(dspir=256) et l'envoyé dans un fichier /tmp/var.
merci beaucoup pour vous aides.
_________________
Page 1 sur 1
commande unix pour tester 2 valeurs
#3
Posté 09 juin 2008 - 16:12
Bonjour,
Voici qui devrait repondre a ton besoin :
Le script prend en parametre le fichier que tu veux trier et ecrit dans /tmp/var.
Voici qui devrait repondre a ton besoin :
#!/bin/bash # Declaration des variables # Fichier tampon pour classer les variables ORDERED_FILE="ordered_file" # Fichier de sortie OUTPUT_FILE="/tmp/var" # Balise de debut BEGIN_TAG="<vc_entry>" # Balise de fin END_TAG="</vc_entry>" # On cree un fichier temp en supprimant les balises # et en ordonnant les variables echo `sed -e "/vc_entry/d" $1 | sort` > $ORDERED_FILE # On ajoute les balises dans le fichier de sortie echo "$BEGIN_TAG" > $OUTPUT_FILE for i in $( more ordered_file ) do # On recup le nom de la variable courante et la value cur_name=$( echo $i | cut -f1 -d '=' ) cur_value=$( echo $i | cut -f2 -d '=' ) # Ce sont les memes variables on recup if [ "$cur_name" == "$old_name" ]; then if [ $old_value -ge $cur_value ]; then cur_value=$old_value echo -n $old_name"="$old_value >> $OUTPUT_FILE echo -e >> $OUTPUT_FILE else echo -n $cur_name"="$cur_value >> $OUTPUT_FILE echo -e >> $OUTPUT_FILE fi else old_value=$cur_value old_name=$cur_name fi done # Et on ecrit la balise de fin echo "$END_TAG" >> $OUTPUT_FILE # On delete le fichier temp avec les variables triees rm $ORDERED_FILE
Le script prend en parametre le fichier que tu veux trier et ecrit dans /tmp/var.
Ce message a été modifié par rdd - 09 juin 2008 - 16:13.
Viens dans l'antre de renardudezert
Partager ce sujet :
Page 1 sur 1



Haut










