텍스트 파일을 읽고 그 내용을 다른 파일이나 변수에 저장합니다.

텍스트 파일을 읽고 그 내용을 다른 파일이나 변수에 저장합니다.

읽을 파일에는 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

관련 정보