Tengo un archivo de registro que me gustaría analizar y estoy teniendo algunos problemas. Al principio parecía que sería simple. Continuaré y publicaré la fuente que se me ocurrió y luego explicaré lo que trato de hacer.Groovy archivo de texto de análisis
El archivo que estoy tratando de analizar estos datos contiene:
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
Mi código fuente (abajo) básicamente rompe el archivo línea por línea y luego se divide la línea en dos (clave: valor).
Fuente:
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
}
El problema con mi fuente es que cuando uso mis captadores (como $ dataList.Performance) sólo muestra la última en el archivo en lugar de dos.
Así que me pregunto, ¿cómo puedo analizar el archivo para que conserve la información de ambos discos duros? ¿Hay alguna manera de empaquetar la información en un 'objeto de disco duro'?
Cualquier y toda ayuda es apreciada
Unas pocas notas secundarios:
El archivo está en una máquina Windows (a pesar de que la información se tomó de un sistema nix)
El archivo de texto es dividido por una pestaña, dos puntos y un espacio (como se muestra en mi código fuente) pensé que lo expresaría porque no se ve así en esta página.
Ahh, el poder de inyectar. ;) – Blacktiger
Todo el mundo ama inyectar ;-) –
Wow, gracias bud. No quiero molestarte, pero ¿puedes comentar el segundo, como hiciste con el primero? O si eso es demasiado trabajo, quizás explique cómo funciona. Gracias de nuevo, lo probé y funciona muy bien. En cuanto a cargarlo en la memoria, debería estar bien ya que no es una gran cantidad de texto. – JohnStamos