Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1033 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [RESOLU] Suppression d'adresse IP dans un fichier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[RESOLU] Suppression d'adresse IP dans un fichier

n°1085515
cosca44
Posté le 28-10-2008 à 17:22:18  profilanswer
 

Bonjour,  
 
Je vous explique mon petit soucis :  
 
Dans un fichier "fichier_final", j'ai une liste d'IP. Dans un autre fichier "fichier_temp4", j'ai deux adresses IP par exemple. Le but est de supprimer les deux IP présentes dans le deuxième fichier dans la liste d'IP. Voici mon code :  
 

Code :
  1. while read addr1
  2. do
  3.        grep -vF "${addr1%;}" $rep/fichier_final > myfic
  4.        mv $rep/myfic $rep/fichier_final
  5. done < $rep/fichier_temp4


 
Cela fonctionne très bien pour les IP finissant par 3 chiffres (de 100 à 254). Mais mon problème survient quand je souhaite supprimer une IP dont le dernier octet est compris entre "10 et 99" et encore plus quand il est compris "entre 1 et 9".  
 
Par exemple pour l'adresse IP 192.168.138.16, il me supprime bien dans la liste d'IP cette adresse mais aussi les adresse finissant en 192.168.138.16X (X allant de 1 à 9).  
 
Est-il possible de gérer cela en shell ?  
 
Par avance merci.  
 
Cosca


Message édité par cosca44 le 29-10-2008 à 15:34:45
mood
Publicité
Posté le 28-10-2008 à 17:22:18  profilanswer
 

n°1085520
o'gure
Modérateur
Multi grognon de B_L
Posté le 28-10-2008 à 17:54:42  profilanswer
 

utilise sed, voir ed :o


---------------
Relax. Take a deep breath !
n°1085531
fighting_f​alcon
Posté le 28-10-2008 à 18:26:54  profilanswer
 

expression régulière de grep ...
 

Code :
  1. grep -vFE '^'${addr1%;}'$' $rep/fichier_final > myfic

n°1085602
cosca44
Posté le 29-10-2008 à 09:28:06  profilanswer
 

Lorsque j'utilise la lligne :  
 
grep -vFE '^'${addr1%;}'$' $rep/fichier_final > myfic
 
J'obtiens le message d'erreur suivant :  
"grep: opérateurs de concordance spécifiés en conflit"
 
J'avoue ne pas trop comprendre l'utilisation de '^' et '$' ? Qu'est ce que cela représente ?  
 
Merci

n°1085603
wedgeant
Da penguin inside
Posté le 29-10-2008 à 09:29:25  profilanswer
 

^ = début de ligne
$ = fin de ligne
 
tu devrais te renseigner sur les expressions régulières avant d'aller plus loin :o


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
n°1085625
gouttegd
Posté le 29-10-2008 à 10:47:36  profilanswer
 

Bonjour,
 
La commande comm (1) ne ferait-elle pas l’affaire ?
 
Quelque chose comme ça :

comm -3 fichier_final fichier_temp4

qui supprime de la sortie toutes les lignes apparaissant dans les deux fichiers (dans ton cas elle ne laisserait donc que les IP présentes dans fichier_final mais pas dans fichier_temp4).

n°1085657
cosca44
Posté le 29-10-2008 à 11:21:43  profilanswer
 

Par exemple, je teste cette ligne de commande :  
 
sed -e '/192.168.138.16$/d' fichier_final
 
Le résultat est que çà m'enlève quand même les @Ip terminant en 160, 161 ... alors que çà ne devrait pas les supprimer.  
 
Pour le grep -vFE j'ai toujours la même erreur "grep: opérateurs de concordance spécifiés en conflit" , j'ai l'impression que les options "-E" et "-F" ne sont pas compatible ?

n°1085662
cosca44
Posté le 29-10-2008 à 11:25:53  profilanswer
 

Je me demande s'il ne faut pas que je travail sur le nombre de caractère du dernier octet de l'adresse. C'est-à-dire, si l'adresse à supprimée est sur deux digits, alors je test que les adresses IP ayant deux digits dans le dernier octet et je supprimer l'adresse voulu dans cette liste.  
 
Mais çà me parait plus fastidieux ?

n°1085747
cosca44
Posté le 29-10-2008 à 15:34:05  profilanswer
 

Pour info, j'ai trouvé l'option qui me faisait défaut pour le grep.  
 
En fait il fallait rajouter l'option "-w" :  
 
grep -vwF ${addr1%;} $rep/fichier_final > myfic  
 
Et çà fonctionne très bien. Enfin mon script est terminé après avoir galéré pas mal sur ce détail.  
 
Merci pour votre contribution.  
 
Cosca


Message édité par cosca44 le 29-10-2008 à 15:34:25

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [RESOLU] Suppression d'adresse IP dans un fichier

 

Sujets relatifs
[RESOLU] impossible de trouver authldap.schema pur courrierPB réinstallation de safari [Résolu]
[Résolu] [wget] user, pass, checkbox, et variable "challenge"[Résolu] "you need to load the kernel first" et Grub <
[Resolu] expect ScriptFichier transformé en répertoire
[RESOLU] Commande SED : suppresion d'une variable dans un fichier KOpam_tally [résolu]
Problème de boot avec 2.6.27 ! [Résolu] 
Plus de sujets relatifs à : [RESOLU] Suppression d'adresse IP dans un fichier


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR