提取SQL中用到的表

 

 

dos2unix *
for i in `ls`
do
    id=`echo ${i:0:2}`
    awk '{print tolower($0)}' "${i}"|grep -Eiw "from"|awk -F 'from' '{print $NF}'|grep -v "("|awk -F'.' '{print $NF}'|awk -v id=${id} '{print id"|"$1}'
    awk '{print tolower($0)}' "${i}"|grep -Eiw "join"|awk -F 'join' '{print $NF}'|grep -v "("|awk -F'.' '{print $NF}'|awk -v id=${id} '{print id"|"$1}'
done|sort -u > tmpa

 

awk -F'|' '{print $2}' tmpa|sort -u|grep -vE "staff_info|dept_info|branch_info|rank"|awk '{print "show tables like '\''*"$1"'\'';"}' 
### bug:
### 1. 有垃圾数据,可通过判断剔除
### 2. 不支持表名与from或join分行的SQL
 

 

posted @ 2018-09-19 17:39  chenzechao  阅读(313)  评论(0)    收藏  举报