Вот версия sed:
sed -n 's/TRAP-TYPE//p' inp-file.txt
В примере, который вы указали, выход:
sed -n 's/TRAP-TYPE//p' inp-file.txt
emuEventTrapInformative
In ваш первоначальный вопрос, который вы запросили первый экземпляр TRAP-TYPE в файле. Если у вас более одного intance sed -n 's/TRAP-TYPE//p' | head -n1 будет делать трюк
Вот еще одна версия, которая извлекает несколько строк (на случай, если вам это нужно, когда-либо), если у вас есть несколько экземпляров TRAP-TYPE в файле.
$ awk 'BEGIN {RS="TRAP-TYPE"} NR>1{ print previous } {previous=$NF}' inp-file.txt
emuEventTrapInformative
someOtherString
Объяснение:
RS является разделителем записей. Мы делим весь текст на записи, используя TRAP-TYPE в качестве строки, затем печатаем последний элемент перед разделителем. Проблема в том, что последняя запись заканчивается фигурной скобкой. Поэтому, чтобы избежать этого, мы используем конструкцию NR>1{print previous}{previous=$NF}, чтобы мы могли игнорировать последнюю строку.
Пояснение
-- Traps
emuEventTrapInformative TRAP-TYPE
ENTERPRISE compaq
VARIABLES { scellNameDateTime,
shelfId,
shelfElementType,
shelfElementNum,
shelfErrorCode }
-- Traps
someOtherString TRAP-TYPE
ENTERPRISE compaq
VARIABLES { scellNameDateTime,
shelfId,
shelfElementType,
shelfElementNum,
shelfErrorCode }