#1 Le 15/05/2017, à 12:36
- dadod
lire un fichier csv ligne par ligne
Bonjour,
j'ai un fichier csv comment je peux lire ligne par ligne et regroupe les ligne qui ont le meme valeur dans le colonne 5 ...
merci par avance
04/05/17;12:05:11;170.166;1;192.168.8.234;1
04/05/17;12:05:34;170.106;1;192.168.9.234;1
04/05/17;12:05:47;170.121;1;192.168.10.234;1
04/05/17;12:05:58;170.108;1;192.168.14.234;1
04/05/17;12:06:03;170.159;1;192.168.14.234;1
04/05/17;12:06:18;170.109;1;192.168.1.234;1
04/05/17;12:06:30;170.110;1;192.168.16.234;1
04/05/17;12:06:42;170.111;1;192.168.17.233;1
04/05/17;12:06:54;170.112;1;192.168.18.234;1
04/05/17;12:07:05;170.113;1;192.168.19.233;1
04/05/17;12:07:22;170.114;1;192.168.1.234;1
04/05/17;12:07:35;170.115;1;192.168.20.234;1
04/05/17;12:07:46;170.116;1;192.168.21.234;1
04/05/17;12:08:26;170.118;1;192.168.22.234;1
04/05/17;12:08:37;170.149;1;192.168.23.234;1
04/05/17;12:08:51;170.150;1;192.168.23.234;1
04/05/17;12:09:11;170.154;1;192.168.24.234;1
04/05/17;12:09:23;170.127;1;192.168.25.234;1
04/05/17;12:09:37;170.122;1;192.168.26.234;1
04/05/17;12:09:50;170.167;1;192.168.26.234;1
Modération : merci de respecter les règles du forum, en particulier section « Poser une question » § 4.
Dernière modification par cqfd93 (Le 15/05/2017, à 13:26)
Hors ligne
#2 Le 15/05/2017, à 13:01
- pingouinux
Re : lire un fichier csv ligne par ligne
Bonjour,
Peut-être ceci ?
sort -t\; -Vk5,5 fichier
Hors ligne
#3 Le 15/05/2017, à 13:26
- dadod
Re : lire un fichier csv ligne par ligne
je veux verifier les lignes qui ont la meme valeurs de colonne numéro 5 si oui , donc vérifier qu'il ont une meme valeur de champs numéro 4 ,alors si le champ
4 est de meme valeur envoyer le message ok sinn envoyer err
merci par avance
15/05/17;10:36:46;170.123;1;192.168.7.234;1
15/05/17;10:36:59;170.168;1;192.168.7.234;1
04/05/17;13:17:54;170.166;1;192.168.8.234;1
04/05/17;14:15:09;170.158;1;192.168.8.234;1
04/05/17;14:15:21;170.165;1;192.168.8.234;1
04/05/17;14:16:17;170.159;1;192.168.14.234;1
04/05/17;14:31:26;170.108;1;192.168.14.234;1
Hors ligne
#4 Le 15/05/2017, à 17:21
- Watael
Re : lire un fichier csv ligne par ligne
salut,
un CSV (un tableau en quelque sorte) se parcourt avec (g)awk !
Dernière modification par Watael (Le 15/05/2017, à 17:22)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#5 Le 17/05/2017, à 09:18
- DonutMan75
Re : lire un fichier csv ligne par ligne
Hello
alors déjà
Colonne 1 : la date
Colonne 2 : l'heure
Colonne 3 : une IP
Colonne 4 : un nombre (1)
Colonne 5 : une IP
Colonne 6 : un nombre (1)
L'explication de ton algo n'est pas très claire...
je veux verifier les lignes qui ont la meme valeurs de colonne numéro 5
==> même valeur que quoi ??
Veux-tu tester si pour une IP donnée en colonne 5, nous avons toujours le même nombre en colonne 4
OU BIEN
tester pour toutes les IP0 de la colonne 5 si nous avons le même nombre en colonne 4 pour toutes les autres IP=IP0 ??
Je suppose que c'est le premier cas ?
Fichier de départ :
$ cat text.txt
15/05/17;10:36:46;170.123;1;192.168.7.234;1
15/05/17;10:36:59;170.168;1;192.168.7.234;1
04/05/17;13:17:54;170.166;1;192.168.8.234;5
04/05/17;14:15:09;170.158;1;192.168.8.234;5
04/05/17;14:15:21;170.165;1;192.168.8.234;1
04/05/17;14:16:17;170.159;1;192.168.14.234;5
04/05/17;14:31:26;170.108;1;192.168.14.234;1
Naïvement, je ferai quelque chose comme ça (mais je suis sûr que Watael ou Pingouinux peuvent faire beaucoup plus élégant ! ^^)
$ IP="192\.168\.7\.234"
$ grep -E ".*${IP};[0-9]+$" < text.txt | awk -F ';' '{print $4}' | sort | uniq | wc -l
Cette commande renvoie, pour une IP $IP donnée, le nombre de valeurs différentes trouvée en colonne 4. Si ça vaut 1, c'est cool. Si ça vaut plus de 1, ça veut dire qu'il y a plusieurs valeurs différentes en colonne 4...
Bonne journée à tous !
Donut
Dernière modification par DonutMan75 (Le 17/05/2017, à 09:19)
Hors ligne
#6 Le 17/05/2017, à 09:52
- cqfd93
Re : lire un fichier csv ligne par ligne
Bonjour,
j'ai un fichier csv comment je peux lire ligne par ligne et regroupe les ligne qui ont le meme valeur dans le colonne 5 ...
Et si tu donnais au moins un code que tu aurais écrit toi-même pour montrer que tu recherches activement la solution et que tu n'attends pas simplement que les autres membres fassent le boulot pour toi ? Parce que en regardant tes derniers sujets,j'ai vraiment l'impression que tu fais faire tes devoirs par le forum.
− cqfd93 −
Hors ligne