re='create table'
csplit -s -k -f file. yourSqlFile "%^$re%" "/^$re/" '/^select name,/' '/./'
for f in file.[0][0-3]; do
k=${f#*.0}
mv "$f" "file$k.sql"
done
for i in {2,1,0};do
j=$((i + 1))
mv "file$i.sql" "file$j.sql"
done
O arquivo a ler é file.sql
contendo o seguinte texto
create table temp
(name varchar(20), id number)
on commit reserve rows;
create table temp1
(name varchar(20), id number)
on commit reserve rows;
select name, id
from temp where id=21;
Eu quero as três consultas armazenadas em três arquivos diferentes, conforme abaixo
arquivo1.sql
create table temp
(name varchar(20), id number)
on commit reserve rows
arquivo2.sql
create table temp1
(name varchar(20), id number)
on commit reserve rows
file3.sql
select name, id
from temp where id=21
usando scripts do ksh enquanto retém os espaços em branco