adiloos98 Posté 26 Mai 2008 Posté 26 Mai 2008 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. _________________
Kioob Posté 7 Juin 2008 Posté 7 Juin 2008 Hello, une manière simple de faire cela serait d'utiliser PHP 5 en ligne de commande. Un coup de SimpleXML et c'est réglé en quelques lignes.
rdd Posté 9 Juin 2008 Posté 9 Juin 2008 (modifié) Bonjour, Voici qui devrait repondre a ton besoin : #!/bin/bash# Declaration des variables# Fichier tampon pour classer les variablesORDERED_FILE="ordered_file"# Fichier de sortieOUTPUT_FILE="/tmp/var"# Balise de debutBEGIN_TAG="<vc_entry>"# Balise de finEND_TAG="</vc_entry>"# On cree un fichier temp en supprimant les balises# et en ordonnant les variablesecho `sed -e "/vc_entry/d" $1 | sort` > $ORDERED_FILE# On ajoute les balises dans le fichier de sortieecho "$BEGIN_TAG" > $OUTPUT_FILEfor i in $( more ordered_file )do# On recup le nom de la variable courante et la valuecur_name=$( echo $i | cut -f1 -d '=' )cur_value=$( echo $i | cut -f2 -d '=' )# Ce sont les memes variables on recupif [ "$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 fielse old_value=$cur_value old_name=$cur_namefidone# Et on ecrit la balise de finecho "$END_TAG" >> $OUTPUT_FILE# On delete le fichier temp avec les variables trieesrm $ORDERED_FILE Le script prend en parametre le fichier que tu veux trier et ecrit dans /tmp/var. Modifié 9 Juin 2008 par rdd
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant