읽을 파일에는 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;
아래와 같이 세 개의 서로 다른 파일에 세 개의 쿼리를 저장하고 싶습니다.
파일 1.sql
create table temp
(name varchar(20), id number)
on commit reserve rows
파일 2.sql
create table temp1
(name varchar(20), id number)
on commit reserve rows
파일 3.sql
select name, id
from temp where id=21
공백을 유지하면서 ksh 스크립트 사용
답변1
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