用sed,line cut提取sql插件

时间:2012-03-01 12:44:16

标签: linux awk sed grep mysqldump

我一直在阅读有关使用sed从sql转储中提取数据的stackoverflow,更准确,最终目的是提取特定表的插入,以便仅恢复该表。 / p>

我正在使用它:

sed -n '/LOCK TABLES `TABLE_NAME`/,/UNLOCK TABLES/p' dump.sql > output.sql

我遇到的问题是我们在1行上插入的长度超过50Mb,因此在提取插入时,输出会在行尾之前被剪切掉。 像:

......
(4
3458,'0Y25565137SEOEJ','001','PREPAR',1330525937741,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
(43459,'666

我尝试使用awk甚至简单的grep,结果相同,该行被删除。

编辑:我在mysql的sql转储中使用它,而我正在使用的系统是Centos 5.2

2 个答案:

答案 0 :(得分:1)

你可以试试awk并看看它是否更好(我想是这样):

awk '/LOCK TABLES `TABLE_NAME`/,/UNLOCK TABLES/' dump.sql > output.sql

答案 1 :(得分:0)

但如果它是使用exp创建的转储文件,则只能导入所需的表

imp user/pass tables=table1,table2 ...