
Envoyé par
selmani300
la seconde boucle while de parcour de fichier FluSA je veu utliser la commande pour avoir une recherche plus rapide et le problemme et la suppression du la ligne SA au cas ou je le trouve moi j'utilise le numeros de ligne
Oulala ! moins vite, je ne comprend pas tout... ^^
Sinon, soyons fous : n'utilisons que deux guillemets
var6="$var1 $var2 $var3 $var"
mais à ce moment là, $var6 vaut (pour la première ligne) S 94.75.222.69 80 192.168.1.2 , et donc $var6 ne sera jamais égal à $vari6, à cause de $var1 (: S != SA ) !
Donc :
1 2 3 4
| while read var{1..5} reste;
do
var6="$var2 $var3 $var4 $var5"
... |
et évidemment pareil pour $vari6
Le numéro de la ligne traitée doit être incrémenté dans tous les cas, non?
1 2
| # suppression de la ligne qcq soit trouver ou non du fichier FluS.txt
sed -i "${l}d" FluSA.txt |
Si, dans tous les cas, tu veux supprimer la ligne lue, alors il ne faut pas mettre cette commande dans la condition !
En résumé :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| #!/bin/bash
## Objectif : trouver dans FluSa.txt les correspondances avec FluS.txt
ipsumdump -r $1 --no-headers -f "tcp[13] == 18" -dDsS >FluSA.txt
ipsumdump -r $1 --no-headers -f "tcp[13] == 2" -sSdD >FluS.txt
# lecture de FluS.txt
while read var{1..5} reste;
do
var6="$var2 $var3 $var4 $var5"
# initialisation du numéro de ligne
l=1
# lecture de FluSA.txt
while read vari{1..5} reste;
do
vari6="$vari2 $vari3 $vari4 $var5"
if [ "$vari6" = "$var6" ]
# cas d'acquittement trouvé
then
# écriture du résultat dans un autre fichier
echo "$var6" >>SynIsoler$(date +%D-%T).txt
# suppression de la ligne en correspondance
sed -i "${l}d" FluSA.txt
#mise à jour du compteur de ligne pour prendre en compte cette suppression
let "l -=1"
fi
let "l +=1"
done < FluSA.txt
done < FluS.txt
rm -f FluS.txt
rm -f FluSA.txt |
Cependant, ce script n'est pas satisfaisant. En effet, comment peux-tu être sûr qu'une ligne SynAck correspond effectivement à une ligne Syn, et non à une autre ligne Syn ultérieure ?
Partager