Groovy parst Textdatei

Ich habe ein Dateiprotokoll, das ich analysieren möchte, und habe einige Probleme. Zuerst schien es einfach zu sein. Ich werde fortfahren und die Quelle posten, die ich mir ausgedacht habe, und dann erklären, was ich versuche zu tun.

Die Datei, die ich zu analysieren versuche, enthält folgende Daten:

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

Mein Quellcode (unten) zerlegt die Datei grundsätzlich zeilenweise und teilt sie dann in zwei Teile (Schlüssel: Wert).

Quelle

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
}

Das Problem mit meiner Quelle ist, dass wenn ich meine Getter (wie $ dataList.Performance) verwende, nur der letzte in der Datei angezeigt wird und nicht zwei.

Also frage ich mich ,, wie analysiere ich die Datei, damit sie die Informationen für beide Festplatten enthält? Gibt es eine Möglichkeit, die Informationen in ein 'Festplattenobjekt' zu packen?

Any und jede Hilfe wird geschätzt

Ein paar Randnotizen:

Die Datei befindet sich auf einem Windows-Computer (obwohl die Informationen von einem Nix-System abgerufen wurden)

Die Textdatei ist durch einen Tabulator, einen Doppelpunkt und ein Leerzeichen (wie in meinem Quellcode gezeigt) getrennt. Ich dachte nur, ich würde das sagen, weil es auf dieser Seite nicht so aussieht.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage