Na verdade, existe uma maneira muito interessante de lidar com esse cenário na forma regular sed
: interchange newline com algum caractere regular, digamos, _ depois, faça o [^ _] e, em seguida, retorne. Eu estava querendo postar uma solução para um problema que surgiu, mas estava com preguiça de postar, mas agora, deixe-me colocar aqui:
sed -e '
/./!b
:loop
$q; N
/\n$/bloop
h
/\ncreate table/!{
s/\(.*\)\n.*//p
g;s/.*\(\n\)//;D
}
g
y/\n_/_\n/
s/^[^_]*/test/
y/\n_/_\n/
' input.data