Compter parmis liste d'IP
Résolu/Fermé
Ludo
-
29 nov. 2011 à 20:34
mamiemando Messages postés 33582 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 17 mars 2025 - 29 nov. 2011 à 21:01
mamiemando Messages postés 33582 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 17 mars 2025 - 29 nov. 2011 à 21:01
Bonjour,
voilà j'ai un fichier texte qui comporte une liste d'adresses IP,
ce sont les connexions enregistrées, cependant, la même IP peut se répéter (si elle s'est connecté plusieurs fois).
Je voudrais connaître le nombre total d'IP qui s'est connecté (donc qui se trouve dans mon fichier) sans compter les doubles.
Comment puis-je réaliser un script qui exécute ce compte ?
Je sais qu'il faut utiliser grep, mais comment faire pour ne compter qu'une seule fois les IP qui s'y trouvent plusieurs fois ?
Merci de vos réponses, bonne journée.
voilà j'ai un fichier texte qui comporte une liste d'adresses IP,
ce sont les connexions enregistrées, cependant, la même IP peut se répéter (si elle s'est connecté plusieurs fois).
Je voudrais connaître le nombre total d'IP qui s'est connecté (donc qui se trouve dans mon fichier) sans compter les doubles.
Comment puis-je réaliser un script qui exécute ce compte ?
Je sais qu'il faut utiliser grep, mais comment faire pour ne compter qu'une seule fois les IP qui s'y trouvent plusieurs fois ?
Merci de vos réponses, bonne journée.
A voir également:
- Compter parmis liste d'IP
- Ethernet n'a pas de configuration ip valide - Guide
- Liste déroulante excel - Guide
- Comment connaître son adresse ip - Guide
- Liste déroulante en cascade - Guide
- Comment savoir si quelqu'un utilise mon adresse ip - Guide
1 réponse
mamiemando
Messages postés
33582
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
17 mars 2025
7 833
Modifié par mamiemando le 29/11/2011 à 21:03
Modifié par mamiemando le 29/11/2011 à 21:03
Un truc dans ce genre devrait faire l'affaire :
Exemple : (qui permettra d'expliquer la commande)
Le "sort" est nécessaire car "uniq" ne supprime que les répétitions consécutives. Note que si plusieurs IP sont sur la même ligne, ça continue à marcher car "egrep -o" écrira une IP par ligne.
Bonne chance
egrep -o "[0-9]{1,3}([.][0-9]{1,3}){3}" toto.txt | sort | uniq | wc -l
Exemple : (qui permettra d'expliquer la commande)
(mando@aldur) (~) $ cat toto.txt 192.168.1.1 coucou1 coucou2 192.168.1.2 coucou3 192.168.1.1 coucou3 (mando@aldur) (~) $ egrep -o "[0-9]{1,3}([.][0-9]{1,3}){3}" toto.txt 192.168.1.1 192.168.1.2 192.168.1.1 (mando@aldur) (~) $ egrep -o "[0-9]{1,3}([.][0-9]{1,3}){3}" toto.txt | uniq 192.168.1.1 192.168.1.2 192.168.1.1 (mando@aldur) (~) $ egrep -o "[0-9]{1,3}([.][0-9]{1,3}){3}" toto.txt | sort | uniq 192.168.1.1 192.168.1.2 (mando@aldur) (~) $ egrep -o "[0-9]{1,3}([.][0-9]{1,3}){3}" toto.txt | sort | uniq | wc -l 2
Le "sort" est nécessaire car "uniq" ne supprime que les répétitions consécutives. Note que si plusieurs IP sont sur la même ligne, ça continue à marcher car "egrep -o" écrira une IP par ligne.
Bonne chance