Я пытаюсь написать скрипт, который может разобрать следующий вывод -Tcl разбор для вывода команды выходов, не давая никакого вывода
dev1# show stats all
20:01:02-180 (stats) ID=1a2b3c
Work Stats -- Now -- -------- Overall --------
T1 T2 Total T5 T6 Total
container 3 3 0 3 3 3
operatioms 3 3 0 3 3 3
docker 3 3 0 3 3 3
tcl 3 3 0 3 3 3
app 3 3 0 3 3 3
external 1 4 0
intra 2 6 0
incoming locks 8 6 0
outgoing locks 4 3 0
race-condition times 10 20 23
threads/usage 45 56 70
Power 2.3 10
Consumption 20.3% 29%
-----------------------------------------------------------------------
Separate Command
-----------------------------------------------------------------------
dev1# show usage
20:01:08-100
OS: 48270 %
Core: 4524 %
User: 90 %
К сожалению, устройство вывод не отформатирован хорошо.
При просмотре TCL блогах, я нашел один блог, который имел следующий код -
set input [dev1 run "show stats"]
array unset output
array set output {}
foreach line [split $input "\n"] {
if {[regexp {^([^:]+?)\s*:\s*(\S+)\s*(\S+)?$} $line ]} {
set key [string tolower $key 0 0]
set output($key) $value
if {[string length $units]} {
set output(${key}Unit) $units
}
}
}
foreach {key value} [array get output] {
puts [list $key $value]
}
Я не могу получить эту работу. Хотя, шаги блога соблюдаются. Может кто-то указать несколько намеков на решение этой проблемы. Я новичок в форуме и хотел бы узнать больше.
Ожидаемый выход
stats {
{time 20:01:02-180}
{id 1a2b3c}
{cmd stats}
{Now
{T1 {container 3} {operatioms 3} {docker 3} {tcl 3} {app 3} {extrenal 3} {intra 2} {incoming_locks 8} {outgoing_locks 4} {race-condition_times 10} {threads/usage 45}}
{T2 {container 3} {operatioms 3} {docker 3} {tcl 3} {app 3} {extrenal 4} {intra 6} {incoming_locks 6} {outgoing_locks 3} {race-condition_times 20} {threads/usage 56}}
{Total {container 3} {operatioms 3} {docker 3} {tcl 3} {app 3} {extrenal 4} {intra 6} {incoming_locks 0} {outgoing_locks 0} {race-condition_times 23} {threads/usage 70}}
}
{Overall
{T5 {container 3} {operatioms 3} {docker 3} {tcl 3} {app 3} }
{T6 {container 3} {operatioms 3} {docker 3} {tcl 3} {app 3} }
{Total {container 3} {operatioms 3} {docker 3} {tcl 3} {app 3} }
}
{Power {current 2.3} {total 10}}
{Consumptiomn {current 20.3%} {total 29%}}
}
-----------------------------------------------------------------------
-----------------------------------------------------------------------
usage {
{time 20:01:08-100}
{OS 48270%}
{Core 4524%}
{User 90%}
}
Благодаря
Добро пожаловать в StackOverflow! Чтобы лучше ответить на ваш вопрос, отредактируйте свой вопрос и укажите, что вы не можете получить. Является ли код запущенным, он анализирует некоторые, но не весь ваш вывод, неправильно ли он обрабатывается и т. Д. – buczek
Спасибо @buczek за ваши комментарии. Я обновил вопрос. –
Вы должны заглянуть в свое регулярное выражение, которое не анализирует все строки на входе. Добавьте регулярное выражение для похожих данных и возьмите необходимые значения. – Ashish