Hum je m'en sort pas en voulant travailler avec des élements simple : je ne veus pas réecrire le script avec les élements ci dessus, quoi je le fairais certainement pour la version finale mais là j'aimerai continuer sur ma lancer le problème c'est que juste pour extraire et comparer si le début de chaine (fichier1) correspond bien au début de chaine fichiers 2 je fais un truc plus que lourd est qui ne fonctionne pas :
#!/bin/sh
i=1
while read ligne; do
i=`expr $i + 1`
debutd[$i]=$ligne
done < fich.txt
nb_lignd=$i
echo "$i"
j=1
while read ligne; do
j=`expr $j + 1`
debuth[$j]=$ligne
done < ficd.txt
nb_lignh=$j
echo "$j"
for lign in `seq 1 $nb_lignd`
do
default_affiche[$i]=1
gg=${debutd[$lign]}
echo "$gg"
for lig in `seq 1 $nb_lignh`
do
verifh=${debuth[$lig]}
echo "$verifh"
if [ ${debuth[$lig]} -ne ${debutd[$lign]} ]; then
default_affiche[$lign]=0
else
if [ ${debuth[$lig]} -eq ${debutd[$lign]} ]; then
tmp_addeci=${addeci[$lign]}
tmp_addecih=${addeci[$lig]}
fi
fi
done
for lign in `seq 1 $nb_lignd`
do
affiche1=${default_affiche[$i]}
if [ $affiche -eq 1 ]; then
echo"${tmp_addeci[$lign]}"
fi
done
done
Et même si cela fonctionné je l'imagine mal dans mon usine à gaz en début car là ce serai une usine miné.
Donc je pense qu'une fois extrait (chaque début de ligne) dans les deux différents fichiers : je fais quelquechose du type
cmp repdf1.txt rephf1.txt > fichierx.txt
je pense que cela va comparer les deux fichiers et mettre la différence dans le fichierx puis j'aimerai reprendre le contenu de fichierx (chaque ligne) et les supprimer de repdf1 et rephf1, le problème c'est que je ne vois pas comment faire. ...
Pas de problème ;)
Merci bien je regarderai pour la version deux vue que ca m'embête de tout refaire je cherche quand même dans un premier temps à comparer ligne à ligne et à poursuivre le suite que s'il elles correspondent bien.
En tout cas merci je ne connaissai pas du tout cette utilisation de printf ainsi que le passage hexa >> decimal ;)
Mais je crois qu'il faudrait plutôt l'inverse ;) un convertisseur décimal >> hexa
Je ne souhaite pas du tout conserver l'adresse en décimal, d'ailleur une adresse mac en décimal c'est pas trés parlant, les requêtes snmp sont parfois trés étranges.
Ok, niquel mais j'aimerai un peu analyser ce cut -d c'est le délimiteur qui est ici l'espace ' ' , ok je viens de comprendre f1 est du début au 1er espace et f2 la fin. Niquel
merci ;)
Surtout que ce n'est pas un petit fichier.
Hum je sais pas si vous voyez le résonnement que je cherche à avoir si par exemple j'ai 2 chiffres présent dans port[$i]=${ligne: -2} alors je peus prendre les trois derniers caractères de la lignes ... si quelqu'un voit une solutions avec cette façon ;)
je ne tente même pas ce que j'ai écris ci dessus sachant que c'est totalement faux :p et je ne vois pas trop le moyen de vérifier la présence de 2 chiffres, ou d'exclure la présence d'un espace.
[^] # Re: Utiliser les outils existants
Posté par sdk . En réponse au message besoin d'un gros coup de pouce, orientation projet. Évalué à 1.
Bon piste qui est peut etre à laisser tombé.
[^] # Re: Utiliser les outils existants
Posté par sdk . En réponse au message besoin d'un gros coup de pouce, orientation projet. Évalué à 1.
Hum je m'en sort pas en voulant travailler avec des élements simple : je ne veus pas réecrire le script avec les élements ci dessus, quoi je le fairais certainement pour la version finale mais là j'aimerai continuer sur ma lancer le problème c'est que juste pour extraire et comparer si le début de chaine (fichier1) correspond bien au début de chaine fichiers 2 je fais un truc plus que lourd est qui ne fonctionne pas :
#!/bin/sh
i=1
while read ligne; do
i=`expr $i + 1`
debutd[$i]=$ligne
done < fich.txt
nb_lignd=$i
echo "$i"
j=1
while read ligne; do
j=`expr $j + 1`
debuth[$j]=$ligne
done < ficd.txt
nb_lignh=$j
echo "$j"
for lign in `seq 1 $nb_lignd`
do
default_affiche[$i]=1
gg=${debutd[$lign]}
echo "$gg"
for lig in `seq 1 $nb_lignh`
do
verifh=${debuth[$lig]}
echo "$verifh"
if [ ${debuth[$lig]} -ne ${debutd[$lign]} ]; then
default_affiche[$lign]=0
else
if [ ${debuth[$lig]} -eq ${debutd[$lign]} ]; then
tmp_addeci=${addeci[$lign]}
tmp_addecih=${addeci[$lig]}
fi
fi
done
for lign in `seq 1 $nb_lignd`
do
affiche1=${default_affiche[$i]}
if [ $affiche -eq 1 ]; then
echo"${tmp_addeci[$lign]}"
fi
done
done
Et même si cela fonctionné je l'imagine mal dans mon usine à gaz en début car là ce serai une usine miné.
Donc je pense qu'une fois extrait (chaque début de ligne) dans les deux différents fichiers : je fais quelquechose du type
cmp repdf1.txt rephf1.txt > fichierx.txt
je pense que cela va comparer les deux fichiers et mettre la différence dans le fichierx puis j'aimerai reprendre le contenu de fichierx (chaque ligne) et les supprimer de repdf1 et rephf1, le problème c'est que je ne vois pas comment faire. ...
:-/
[^] # Re: .
Posté par sdk . En réponse au message besoin d'un gros coup de pouce, orientation projet. Évalué à 1.
Merci bien je regarderai pour la version deux vue que ca m'embête de tout refaire je cherche quand même dans un premier temps à comparer ligne à ligne et à poursuivre le suite que s'il elles correspondent bien.
En tout cas merci je ne connaissai pas du tout cette utilisation de printf ainsi que le passage hexa >> decimal ;)
[^] # Re: .
Posté par sdk . En réponse au message besoin d'un gros coup de pouce, orientation projet. Évalué à 1.
Mais je crois qu'il faudrait plutôt l'inverse ;) un convertisseur décimal >> hexa
Je ne souhaite pas du tout conserver l'adresse en décimal, d'ailleur une adresse mac en décimal c'est pas trés parlant, les requêtes snmp sont parfois trés étranges.
[^] # Re: awk
Posté par sdk . En réponse au message Problème récupération variable :-/. Évalué à 1.
merci ;)
Surtout que ce n'est pas un petit fichier.
[^] # Re: awk
Posté par sdk . En réponse au message Problème récupération variable :-/. Évalué à 1.
Merci ;) Un acquis de plus.
[^] # Re: awk
Posté par sdk . En réponse au message Problème récupération variable :-/. Évalué à 1.
Merci ;) Un acquis de plus.
[^] # Re: Quotes
Posté par sdk . En réponse au message Problème récupération variable :-/. Évalué à 1.
mdrr
En faite mon sed fonctionne niquel :), merci ;) quel idiot je fais.
Je vais tester voire ce que ca donne.
i=1
do
#On traite les données
port[$i]=${ligne: -2}
if port[$i]==[00-99]; then
port[$i]=${ligne: -3}
i=`expr $i + 1`
done < rep.txt
Hum je sais pas si vous voyez le résonnement que je cherche à avoir si par exemple j'ai 2 chiffres présent dans port[$i]=${ligne: -2} alors je peus prendre les trois derniers caractères de la lignes ... si quelqu'un voit une solutions avec cette façon ;)
je ne tente même pas ce que j'ai écris ci dessus sachant que c'est totalement faux :p et je ne vois pas trop le moyen de vérifier la présence de 2 chiffres, ou d'exclure la présence d'un espace.
Merci ;)