Мне нужна помощь для синтаксического анализа строки и извлечения слова, разделенного запятой, и назначения значения изнутри [] скобок. Строка ввода, как это:Разбор строки и извлечение слова, разделенного запятой, и назначение значения изнутри [] скобки
KEEP_DFB,?(y/n),[y];
DFB_VERSION,?(1.4.2/1.7.6),[1.4.2]:
и ожидаемый выход
KEEP_DFB=y
DFB_VERSION=1.4.2
Ближайший я мог бы достичь с помощью СЭД это:
echo 'KEEP_DFB,?(y/n),[y]:' | sed 's/\([^,]*,\).*,\([^,]*\):.*/\1=\2/'
, но это не дает результата, как ожидается.
Я также попробовал «разрезать», но тот же результат, что и выше. Использование IFS не допускается для изменения разделителя. Помогите, пожалуйста.
Действительно ли шаблон '(y/n), [y]' всегда выполняется? Я имею в виду даже в '(1.4.2/1.7.6), [1.4.2]' значение внутри '[]' такое же, как значение перед '/' inside'() ' – Sundeep
@Sundeep: поскольку вопрос задает вопрос фиксируя значение между квадратными скобками, было бы неразумно полагаться на совпадение в данных выборки, что та же самая часть материала между круглыми скобками соответствует материалу между квадратными скобками. –
@ JonathanLeffler Да, я так думаю, я не полностью прочитал вопрос, подготовил ответ, а затем заметил мое предположение перед публикацией ... поэтому я попросил разъяснения, поскольку решение было бы проще .. – Sundeep