Дан файл с содержимым следующей формы:
// This is a comment
FOO = 1
BAR = 0
// Comments can be anywhere...
BAZ = 10 //...even here!
Ключи всегда будут привязаны к началу строки, но с любой стороны символа '=
' может быть любое количество пробелов. Значение также может быть отслежено любым количеством пробелов.
РЕДАКТИРОВАТЬ: Значение и / или его завершающие пробелы могут также сопровождаться комментарием.
Как я могу получить значение ключа как однострочное, используя bash
сценарии и / или awk
или sed
? Я хотел бы иметь возможность сделать что-то вроде:
MYVAL=$(<string manipulation to get value of "BAZ" from /tmp/foo.txt>)
чтобы прибыть в
>echo $MYVAL
10
>
Я довольно ужасен в скриптах bash; никогда не достаточно свободно владел набором инструментов для работы со строками, чтобы знать, как к этому приблизиться Самое дальнее, что я мог получить, было
> grep BAZ /tmp/foo.txt
BAZ = 10
и действительно не знал, что делать дальше.
Я искал вокруг SO, но не смог найти решение с той же предпосылкой (в частности, наличие переменного числа пробелов по обе стороны от '=
'), и решения для похожие вопросы не сработали в моей предпосылке.