获取单个表的数据,删除单个表或将整个转储文件拆分为每个包含单个表的文件的最简单方法是什么?我通常最终会做很多vi正则表达式,但我敢打赌用awk / perl等方法可以更简单地处理这些事情.Google结果的第一页带回了一堆非工作的perl脚本.
最佳答案
当我需要从sql转储中提取单个表时,我使用grep,head和tail的组合.
例如:
grep -n "CREATE TABLE" dump.sql
然后,它会为您提供每个的行号,因此,如果您的表位于第200行,而后一个位于第269行,我会:
head -n 268 dump.sql > tophalf.sql
tail -n 69 tophalf.sql > yourtable.sql
我想你可以扩展这些原则来敲除一个脚本,将每个表分成一个文件.
有人想在这里做吗?
另一点可能有助于启动bash循环:
grep -n "CREATE TABLE " dump.sql | tr ':`(' ' ' | awk '{print $1,$4}'
这给你一个很好的行号和表名列表,如:
200 FooTable
269 BarTable
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。