更新mysql时如何通过grep查找不兼容的脚本?

hmmo2u0o  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(382)

我正在将mysql从5.1更新到5.5。
在这个帖子里,提到:
在mysql 5.5.3中,对多个table delete语句中的别名解析做了一些更改,这样就不可能再有不一致或不明确的表别名了。
因为mysql没有提供工具来帮助我们修改不兼容的地方,所以我需要使用 grep 寻找 DELETE FROM tablename AS 在我的php文件和修订 DELETE FROM tablename USING tablename AS .
我的审判: grep -r -o -i -a 'delete from \w\{1,\} as \w\{1,\}' /var/万维网
但失败了。
如何找到 DELETE FROM tablename AS ?

wvt8vs2t

wvt8vs2t1#

你可以用

grep -rEoia 'delete from[ \t]+[^ \t]+[ \t]+as[ \t]+[^ \t]+' /var/www

或者,

grep -rEoia 'delete from[ \t]+[a-zA-Z0-9_]+[ \t]+as[ \t]+[a-zA-Z0-9_]+' /var/www

在正则表达式中, \w 通常代表字母、数字和a _ 烧焦。
这个 -E 选项是支持 + 量词。如果你不能用它,就用它

grep -roia 'delete from[ \t]\{1,\}[a-zA-Z0-9_]\{1,\}[ \t]\{1,\}as[ \t]\{1,\}[a-zA-Z0-9_]\{1,\}' /var/www

相关问题