删除除特定表之外的所有表

时间:2015-01-28 12:29:57

标签: mysql regex grep sql-drop

我想删除所有表格,除了少数几个。我使用以下命令:

mysqldump -uroot -pxxx --add-drop-table --no-data database | grep ^DROP | grep -v "^(cache|webform|redirect)([_a-z0-9]?)+$" | mysql -uroot -pxxx database

根据这个http://www.regexr.com/3aa8k,正则表达式看起来很好,因为我想跳过的表是cache *,webform *,redirect。但问题是它会掉落一切。

1 个答案:

答案 0 :(得分:0)

你的正则表达式是

grep -v "^(cache|webform|redirect)([_a-z0-9]?)+$"

这是扩展格式(旧{grep regexp中不允许|+

试试这个

grep -Ev "^(cache|webform|redirect)([_a-z0-9]?)+$"

或者可以转义元字符?+{|()反斜杠