我想删除除少数几个以外的所有表。我正在使用以下命令:
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,正则表达式似乎没问题,因为我想跳过的表是缓存*、网络表单*、重定向。但问题是它会丢弃所有内容。
最佳答案
你的正则表达式是
grep -v "^(cache|webform|redirect)([_a-z0-9]?)+$"
这是扩展格式(|
和 +
在旧的 grep regexp 中是不允许的)
试试这个吧
grep -Ev "^(cache|webform|redirect)([_a-z0-9]?)+$"
或者有可能转义元字符 ?
, +
, {
, |
, (
, and )
带反斜杠
关于mysql - 删除除特定表之外的所有表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28192304/