Webmaster Hub: commande unix pour tester 2 valeurs - Webmaster Hub

Aller au contenu

Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

commande unix pour tester 2 valeurs Noter : -----

#1 L'utilisateur est hors-ligne   adiloos98 

  • Groupe : Membre
  • Messages : 14
  • Inscrit(e) : 20-mai 08
  • Société:estem

Posté 26 mai 2008 - 17:40

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.
_________________
0

#2 L'utilisateur est hors-ligne   Kioob 

  • Groupe : Membre+
  • Messages : 1 031
  • Inscrit(e) : 19-avril 04
  • Genre:Homme
  • Localisation:Lyon
  • Société:Daevel SARL

Posté 07 juin 2008 - 12:18

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.
Mes jouets
0

#3 L'utilisateur est hors-ligne   rdd 

  • Groupe : Webmaster Régulier
  • Messages : 98
  • Inscrit(e) : 11-janvier 06
  • Genre:Homme

Posté 09 juin 2008 - 16:12

Bonjour,

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
0

Partager ce sujet :


Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)