Files

將文本文件及其儲存內容讀取到不同的文件或變數中

  • March 24, 2017

要讀取的文件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 腳本

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

引用自:https://unix.stackexchange.com/questions/353553