Предполагается, что вам нужно только 3-е ядро (выделено жирным шрифтом), а не остальные
'kernel-rt | kernel-alt | / kernel -' 'headers | xen | firmware | tools | python | utils '
Вот как вы извлекаете его, используя одну команду awk
(стандарт Linux gawk
).
input="kernel-rt|kernel-alt|/kernel-' 'headers|xen|firmware|tools|python|utils"
echo $input|awk -F"|" '{split($3,a,"-");match(a[1],"[[:alnum:]]+",b);print b[0]}'
пояснение
-F"|"
укажите разделитель полей |
, поэтому требуется только 3-е поле
split($3,a,"-")
разделить 3-е поле на -
, левая часть присвоена a[1]
match(a[1],"[[:alnum:]]+",b)
из a[1]
извлекать последовательность буквенно-цифровой строки в b[0]
print b[0]
выводить соответствующую строку.
Если вы хотите извлечь kernel
из 2-го или 1-го полей,Измените $3
на $2
или $1
.