Ввод:
declare -a ForwardPort=([0]="L *:9102:10.0.1.8:9100 # remote laptop" [1]="L *:9166:8.8.8.8:9100 # google")
Требуемый вывод
И я хотел бы получить этот вывод:
{
'ForwardPort': [
'"L *:9102:10.0.1.8:9100 # remote laptop"',
'"L *:9166:8.8.8.8:9100 # google"'
]
}
Попытка
Я пыталсянемного поиграйте с shlex
, но разбор массива ужасен:
import shlex
line='ForwardPort=([0]="L *:9102:10.0.1.8:9100 # remote laptop" [1]="L *:9166:8.8.8.8:9100 # google")'
lex=shlex.shlex(line)
list(lex)
['ForwardPort', '=', '(', '[', '0', ']', '=', '"L *:9102:10.0.1.8:9100 # remote laptop"', '[', '1', ']', '=', '"L *:9166:8.8.8.8:9100 # google"', ')']
Вопрос
Есть ли способ автоматически разобрать значение ForwardPort
в списке?
Примечание: не воспроизводите дома, это было плохое дизайнерское решение, которое привело к этой запутанной проблеме: S