Groovy analyse de fichier texte

J'ai un fichier log que je voudrais analyser et vais avoir quelques problèmes. Au premier abord, il semblait qu'il serait simple. Je vais aller de l'avant et l'après de la source, je suis venu avec et ensuite expliquer ce que je suis en train de faire.

Le fichier que je suis en train d'analyser contient les données suivantes:

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), n'a fait de casser le fichier ligne par ligne, puis divise 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, c'est que lorsque j'utilise mon getters (tel que $dataList.Performances), il n'affiche que la dernière dans le fichier plutôt que de deux.

Alors je me demandais, comment dois-je analyser le fichier de sorte qu'il conserve les informations pour les deux disques durs? Est-il un moyen pour emballer les infos sur un disque dur de l'objet'?

Toute aide est appréciée

A côté de quelques remarques:

Le fichier se trouve sur une machine windows (même si l'info est extrait d'une nix système)

Le fichier texte est séparé par une tabulation, du côlon et de l'espace (comme indiqué dans mon code source) juste pensé que je voudrais état que parce qu'il n'a pas l'air comme ça sur cette page.

OriginalL'auteur JohnStamos | 2010-07-29