Файл для чтения - file.sql
, содержащий следующий текст
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;
Я хочу, чтобы три запроса хранились в трех разных файлах, как показано ниже
file1.sql
create table temp
(name varchar(20), id number)
on commit reserve rows
file2.sql
create table temp1
(name varchar(20), id number)
on commit reserve rows
file3.sql
select name, id
from temp where id=21
используя ksh скриптинг с сохранением пробелов
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