Contenu | Rechercher | Menus

Annonce

Ubuntu 16.04 LTS
Commandez vos DVD et clés USB Ubuntu-fr !

Pour en savoir un peu plus sur l'équipe du forum.

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

#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)


eval, c'est mal.

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,

dadod a écrit :

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.

Hors ligne