У меня есть файл журнала, который я хотел бы проанализировать, и у меня возникли некоторые проблемы.Сначала казалось, что это будет просто.Я опубликую исходный код и объясню, что я пытаюсь сделать.
Файл, который я пытаюсь проанализировать, содержит следующие данные:
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
Мой исходный код (ниже) в основном разбивает файл на строку, а затем разбивает строку на две части (ключ: значение).
Источник:
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
}
Проблема с моим источником заключается в том, что когда я использую мои методы получения (такие как $ dataList.Performance), он показывает только последний в файле, а не два.
Поэтому мне интересно, как мне разобрать файл, чтобы он хранил информацию для обоих жестких дисков?Есть ли способ упаковать информацию в «объект жесткого диска»?
Любая помощь приветствуется
Несколько замечаний:
Файл находится наWindows-машина (даже несмотря на то, что информация взята из системы nix)
Текстовый файл разделен на табуляцию, двоеточие и пробел (как показано в моем исходном коде), просто подумал, что я бы сказал, потому чтоне так на этой странице.