Não sei se isso resolverá seu problema real. Como você não nos mostrou o arquivo de entrada real, não tenho ideia se o que você está tentando funcionará. Em qualquer caso, para corrigir o erro que você está recebendo, use este:
awk '/CREATE DATABASE/{x="F"++i;}(x){print > x;}' file2
Isso modifica o script para tentar imprimir apenas no arquivo x
se a variável x
estiver definida. O erro que você estava recebendo era porque ele estava tentando imprimir todas as linhas, algumas das quais aparentemente estão antes da string CREATE DATABASE
, ponto no qual x
não estava definido. O script acima é equivalente a escrever:
awk '{
if(/CREATE DATABASE/){i=i+1; x="F"i;}
if(x!=NULL){print > x }
}' file2