IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

supprimer uune ligne


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2007
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 88
    Par défaut supprimer uune ligne
    Bonjour

    j'ai deux fichier un FluS qui contien les demande syn et un autre FluSA qui contient les syn ACK c'est la taille de ces deux fichier depasse les Ko et mem les 20 Mo ce que je doit faire est de retrouver les Syn sans reponse sa veu dire les syn qui n'on pas de Syn Ack
    FluS
    Flags @IPsource PortSource @IPdestination PortDestionation
    S 94.75.222.69 80 192.168.1.2 58411 1768285273
    S 192.168.1.2 58411 94.75.222.69 80 3282027644
    S 192.168.1.2 60951 94.75.222.69 80 0
    S 94.75.222.69 80 192.168.1.2 58411 1768285273
    S 94.75.222.69 80 192.168.1.2 58411 1768285273
    S 192.168.1.2 58411 94.75.222.69 80 3282029076
    S 94.75.222.69 80 192.168.1.2 58411 1768285273
    S 94.75.222.69 80 192.168.1.2 58411 1768285273
    S 192.168.1.2 58411 94.75.222.69 80 3282027644

    FluSA
    Flags @IPdestination PortDestionation @IPsource PortSource
    SA 192.168.1.2 60951 94.75.222.69 80 0
    SA 94.75.222.69 80 192.168.1.2 58411 1768285273
    SA 94.75.222.69 80 192.168.1.2 58411 1768285273
    SA 192.168.1.2 58411 94.75.222.69 80 3282029076
    SA 94.75.222.69 80 192.168.1.2 58411 1768285273

    voici le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    ipsumdump -r $1 --no-headers -f "tcp[13] == 18" -dDsS >FluSA.txt
    ipsumdump -r $1 --no-headers -f "tcp[13] == 2" -sSdD >FluS.txt
    while read var{1..5};
    do   
      i="0"
      var6=$var1" "$var2" "$var3" "$var4
      echo "$var6"
        #recherche du SynAck convenant au Syn
        l=1
        while read vari{1..5};
        do
    	 vari6=$vari1" "$vari2" "$vari3" "$vari4
    	 # cas d'acquitement trouver 
    	 if [ "$vari6" = "$var6" ] ;then
    	    i="1"
    	    #ecriture du resulta dans un autree fichier
    	    sed -i "${l}d" FluSA.txt
    	    break
    	else
    	  let "l +=1"
    	fi
        done < FluSA.txt
        echo "$i"
        if [ "$i" = "0" ];then
    	echo "$var6" >>SynIsoler.txt
        fi
        #supprission de la ligne qcq soit trouver ou non du fichier FluS.txt
     done < FluS.txt
    rm -f FluS.txt
    rm -f FluSA.txt
    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

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 703
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 703
    Par défaut
    Citation 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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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é :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 ?

Discussions similaires

  1. [JTable] Supprimer une ligne d'un jtable
    Par Orionmel dans le forum Composants
    Réponses: 5
    Dernier message: 05/11/2004, 23h29
  2. Shell pour supprimer des lignes d'un fichier
    Par nelsa dans le forum Autres langages
    Réponses: 2
    Dernier message: 20/09/2004, 13h26
  3. [C#] Comment supprimer une ligne dans DataGrid ?
    Par BAUDIER dans le forum ASP.NET
    Réponses: 2
    Dernier message: 20/07/2004, 17h03
  4. supprimer une ligne avec cle etrangere
    Par BaBas dans le forum Langage SQL
    Réponses: 4
    Dernier message: 15/07/2003, 12h24
  5. Supprimer une ligne dans un fichier
    Par sbeu dans le forum Langage
    Réponses: 3
    Dernier message: 13/05/2003, 11h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo