@ZooMik

Как обработать данный текст на bash?

Доброго времени суток!
Возникла проблема распарсить конфигурационный файл с использованием bash.

Пример входного файла, который нужно разобрать:
RF='' 		# свободно в каталоге /
VF='' 		# свободно в каталоге /var


[keys1]
        key1='1'
        key2='2'
        key3='3'
        key4='4'
[keys2]
        key1='1'
        key2='2'
        key3='3'
        key4='4'


Хотелось бы получить весь текст в блоке по ключу для дальнейшей обработки с помощью grep. Например, блок по ключу keys2 выглядит так:
[keys2]
        key1='1'
        key2='2'
        key3='3'
        key4='4'


Как я понимаю, sed с этой задачей не справиться, т.к. он считывает текст построчно. Возможно есть еще какие-то утилиты с помощью которых это можно сделать. Или без применения нормальных ЯП не обойтись?
  • Вопрос задан
  • 153 просмотра
Решения вопроса 1
@xibir
sed -rn '/\[keys2\]/,/^[^ ]/{/ +/p}' file.txt
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
saboteur_kiev
@saboteur_kiev Куратор тега Linux
build engineer
Можно так:

sed -rn '/\[keys2\]/,/^\[/p' file.txt

Ищем и выводим строки начиная с той, где нашли "[keys2]" и до начала следующего блока.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы