awk abordagem:
awk 'BEGIN{fn="use_profile_output";}/<kernel>/{getline up; if(up~/use_profile [1-9][0-9]*/)
{f=1; print $0 RS up > fn; next }else{ f=0 }}{ if(f) print > fn; }' file
fn="use_profile_output"
- fn (nome do arquivo) variável contendo use_profile_output
como o nome do arquivo resultante para todos os blocos <kernel>
contendo use_profile
sem seguir zero 0
/<kernel>/
- em cada encontro com uma linha contendo <kernel>
palavra-chave, o conjunto de chaves seguido será executado
getline up;
- obtém o próximo registro contendo use_profile
palavra-chave e o atribui à variável up
use_profile_output
conteúdo do arquivo (algumas linhas foram omitidas para mostrar a saída compacta):
<kernel> /usr/sbin/ntpdate
use_profile 3
use_group 0
misc env LS_COLORS
misc env LANG
misc env DISPLAY
misc env LC_CTYPE
...
...
network inet dgram bind/send :: 123
network inet dgram bind/send 0.0.0.0 123
<kernel> /etc/init.d/ntpd
use_profile 3
use_group 0
misc env LS_COLORS
misc env LANG
...
...
misc env *
misc env \*
file ioctl /dev/console 0x540F
file ioctl /dev/console 0x5413
file mkdir /sys/fs/cgroup/openrc/ntpd/ 0755
file read/write /dev/console
file read /etc/terminfo/l/linux