Question Création tableau 2 dimensions depuis des logs

Plus d'informations
il y a 14 ans 5 mois #10349 par Alexandre
Bonjour à tous,

Je suis actuellement en train de créer un script destiné à organiser des informations depuis un fichier de logs (~100Mo) et à en ressortir des données importantes (en l’occurrence, la fréquence d'un event sur une même seconde).

Ma problématique : créer un tableau (c'est ce qui me parait le plus simple et le plus adapté mais peut être d'autres solutions sont plus exploitables) depuis un fichier texte dont les valeurs sont séparées par des espaces.

ex :

ANNEE/MOIS/JOUR HEURE:MIN:sec.millièmes eventID

(J'ai quelques bases en scripting Batch Shell etc. mais c'est ma première tentative de parsage de fichier texte et je suis un peu perdu ^^)

Merci !

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 5 mois #10351 par Laurent Dardenne
Salut,
comment récupères-tu tes données ?

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 5 mois #10354 par Alexandre
Salut Laurent,

Ce sont de simples fichiers de log (type, Get-Content, cat ...) tout ça fonctionne très bien pour lire les données.

Merci de ta réponse !

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 5 mois #10424 par Alexandre
Bonjour,

Bon le topic n'a pas eu le succès escompté. :ohmy:

En attendant, et devant les difficultés à venir pour parser, trier et mettre en forme les données), je me suis finalement tourné vers logparser de sysinternals. Du coup mon script Powershell ne sert plus qu'à tester l'environnement et récupérer les variables pour former requète logparser.

En attendant, pour ma culture personnelle, si vous savez à l'aide de quel fonction je peux construire un tableau à deux dimensions en récupérant la sortie d'un Get-Content, je suis toujours preneur :)

Merci en tout cas aux créateurs du site et aux rédacteurs du précieux livre qui m'ont déjà rendu bien des services :)

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 5 mois #10427 par Arthur
Salut,

Vu que tu n'as toujours pas eu de réponses je vais tenter de le faire mais vu qu'en ce moment je fais plus de C/bash/perl, je ne suis pas au mieux de ma forme niveau powershell.

Après quelque tests le plus simple est d’utiliser une Arraylist (msdn.microsoft.com/fr-fr/library/system....tions.arraylist.aspx) ca change pas grand-chose au niveau du résultat (en fait si un peu quand même) mais c’est bien plus facile et rapide :


fichier text.txt:

toto 1
tata 2
tete 3
titi 4
tutu 5


[code:1]$array = New-Object \"system.collections.arraylist\"; cat .\test.txt | foreach { $tab = New-Object 'object[,]' 2,2;$tab[0,0]=$_.split(\" \"«»)[0];$tab[0,1]=$_.split(\" \"«»)[1];$array.add($tab)} >$nu
ll[/code:1]

pour récupérer les valeurs:

[code:1]($array[0]).GetValue(0,0)
($array[0]).GetValue(0,1)
($array[1]).GetValue(0,0)
($array[1]).GetValue(0,1)[/code:1]

J'avoue cependant ne pas être le mieux placer pour parler des tableaux sur powershell, je trouve qu'ils ont parfois un comportement étrange par rapport aux autres langages que j'utilise d'habitude.<br><br>Message édité par: bilbao, à: 14/10/11 16:29

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 5 mois #10430 par Arthur
Bon au final j'ai trouvé un autre moyen encore plus simple avec un vrai tableau :P :

[code:1] $lines=(cat test.txt | Measure-Object -line).lines;$array = New-Object 'object[,]' $lines,2; $i=0;cat test.txt | foreach {$array[$i,0] = $_.split(\&quot; \&quot;«»)[0]; $array[$i,1] = $_.split(\&quot; \&quot;«»)[1];$i++ }[/code:1]

[code:1]$array[0,1]
$array[0,0][/code:1]<br><br>Message édité par: bilbao, à: 14/10/11 18:56

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.060 secondes
Propulsé par Kunena