我正试图为每个SQL语句将mydumper创建的文件分割为一个单独的文件。结束分隔符是;但它是多行的。
我以为我有这个命令行:
/bin/awk 'BEGIN{RS=";"}{x="export."++i;}{print $0";"> x".sql";}' 但结果文件没有正确终止。我的样本线少得多,效果很好。因此,我的问题是,如何用完整的行分割SQL文件?
在我的示例文件中,我重复了这个sql,一切都很好。
insert into table (field) values
('asdf'),
('asdf'),
('asdf'),
('asdf'),
('asdf'),
('asdf'),
('asdf'),
('asdf'),
('asdf'),
('asdf'),
('asdf'),
('asdf'),
('asdf'),
('end');awk有某种记录长度限制吗?
[root@db294 TEST]# wc -l *.sql
10364 export.66.sql
10304 export.67.sql
10209 export.68.sql
10208 export.69.sql
10582 export.6.sql
10207 export.70.sql
10207 export.71.sql
9979 export.72.sql
9918 export.73.sql
9918 export.74.sql
9926 export.75.sql
9931 export.76.sql
10061 export.77.sql
10225 export.78.sql
10209 export.79.sql
10585 export.7.sql也许是时候重开我的骆驼书了,试试Perl和Awk
有人请为我创建标签,因为我没有1500点来创建标签。
发布于 2015-03-21 22:40:32
打开太多文件可能是个问题。尝试在写入下一个文件之前关闭前一个文件。
/bin/awk 'BEGIN{RS=";"}{close("export" i ".sql"); x="export."++i;} {print $0";"> x".sql";}' 发布于 2015-03-21 23:25:18
TIMTOWTDI。其中之一可能是:
perl -0x3b -MPath::Tiny -nE 'path("export.@{[++$n]}.sql")->spew($_)' https://stackoverflow.com/questions/29188683
复制相似问题