J'ai un fichier journal que je voudrais analyser et j'ai quelques problèmes. Au début, il semblait que ce serait simple. Je vais aller de l'avant et afficher la source que j'ai inventée, puis expliquer ce que j'essaie de faire.Fichier texte d'analyse Groovy
Le fichier que je suis en train d'analyser contient ces données:
HDD Device 0 : /dev/sda
HDD Model ID : ST3160815A
HDD Serial No : 5RA020QY
HDD Revision : 3.AAA
HDD Size : 152628 MB
Interface : IDE/ATA
Temperature : 33 C
Health : 100%
Performance : 70%
Power on Time : 27 days, 13 hours
Est. Lifetime : more than 1000 days
HDD Device 1 : /dev/sdb
HDD Model ID : TOSHIBA MK1237GSX
HDD Serial No : 97LVF9MHS
HDD Revision : DL130M
HDD Size : 114473 MB
Interface : S-ATA
Temperature : 30 C
Health : 100%
Performance : 100%
Power on Time : 38 days, 11 hours
Est. Lifetime : more than 1000 days
Mon code source (ci-dessous) casse essentiellement la ligne de fichiers en ligne et divise ensuite la ligne en deux (clé: valeur).
Source:
def dataList = [:]
def theInfoName = "C:\\testdata.txt"
File theInfoFile = new File(theInfoName)
def words
def key
def value
if (!theInfoFile.exists()) {
println "File does not exist"
} else {
theInfoFile.eachLine { line ->
if (line.trim().size() == 0) {
return null
} else {
words = line.split("\t: ")
key=words[0]
value=words[1]
dataList[key]=value
println "${words[0]}=${words[1]}"
}
}
println "$dataList.Performance" //test if Performance has over-written the previous Performance value
}
Le problème avec ma source est que lorsque j'utilise mes getters (comme dataList.Performance $), il montre que le dernier dans le fichier au lieu de deux.
Alors je me demande, comment puis-je analyser le fichier afin qu'il conserve les informations pour les deux disques durs? Existe-t-il un moyen de compresser l'information dans un «objet de disque dur»?
Toute aide est appréciée
Quelques notes secondaires:
Le fichier se trouve sur une machine Windows (même si l'information est saisi d'un système nix)
Le fichier texte est divisé par un onglet, deux points, et l'espace (comme montré dans mon code source) juste pensé que je dirais que parce que cela ne ressemble pas à cela sur cette page.
Ahh, le pouvoir d'injecter. ;) – Blacktiger
Tout le monde aime injecter ;-) –
Wow, merci bud. Je ne veux pas vous déranger, mais êtes-vous capable de commenter le second, comme vous l'avez fait avec le premier? Ou si c'est trop de travail, peut-être expliquer comment cela fonctionne. Merci encore, testé et fonctionne très bien. En ce qui concerne le chargement en mémoire, ça devrait aller puisque ce n'est pas une grande quantité de texte. – JohnStamos