Можно использовать ed ... и sed, чувак!
Вы должны захотеть использовать ed для этого, поскольку ed хочет работать с файлом, а не как часть конвейера.
command > dimm-output
wanted=P1-DIMMD1
ed -s dimm-output <<< $'/Location Tag: '"$wanted"$'\n?^ID.*SIZE.*TYPE\n.,/Configured Voltage/p\nq\n' | sed 1,2d
Строка команды ed
-разбивается на четыре\n
-разделенных команды:
/
, для текста «Тег местоположения :», за которым следует значение переменной $wanted
?
, для шаблона:(начало -строки -), "ID", что угодно, "РАЗМЕР", что угодно, "ТИП" .
)до(,
)следующей строки, которая соответствует «Настроенному напряжению», распечатайте эти строки(p
)q
Поскольку ed auto -выводит совпадающую строку при поиске, я использовал здесь sed
, чтобы удалить эти две строки.