Я бы попробовал это так:
cat infile | cut -d"]" -f1 | cut -d"[" -f2 | sed -e /^$/d
(* ПРИМЕЧАНИЕ: мне все равно, я люблю иногда начинать с cat для удобства чтения).
Сначала мы кормим ввод с помощью cat, затем вырезать поле перед разделителем ']', затем из оставшегося бита мы вырезать после '['. Наконец, мы добавляем строку sed для удаления пустых строк, возвращаемых нулевыми результатами операций вырезания.
* Редактировать:
После сканирования вашего осиротевшего комментария в ветке здесь ... кажется, что вы, возможно, хотите сохранить скобки. Было бы полезно в будущем показать желаемый результат imho. может быть, это будет работать нормально?
cat infile| cut -d"=" -f2 | sed 's/[[]]//g' | sed -e /^$/d
Сначала мы читаем в файле ... затем вырезаем после "=", затем с помощью sed удаляем все результаты с пустыми скобками. и, наконец, еще один sed для удаления пустых строк из результатов.