- 论坛徽章:
- 2
|
再改进正确解析JOIN和AS关键字- awk '{t="";gsub(/[,;]/," , ");a=b=0;for(i=1;i<=NF;i++){s=$i;a=(toupper(s)=="FROM")?1:(toupper(s)=="WHERE")?0:a;s=(toupper(s)!="FROM"&&a>0&&b<1&&s!=",")?s:"";b=($i==","||toupper($i)=="JOIN")?0:(s!="")?1:b;t=(s!="")?t""s",":t};print substr(t,1,length(t)-1)}' test
复制代码 test- > more test
- select * from 表1 ;
- select a,b,c from 表2, 表3 where 表2.字段=表3.字段;
- select * from 表4;
- select a,b,c from 表5, 表6 where 表5.字段=表6.字段;
- select a,b,c from 表7 别名7, 表8 as 别名8 where 别名7.字段=别名8.字段;
- select a,b,c from 表9 别名9 inner join 表A as 别名A on 别名9.字段=别名A.字
- 段;
复制代码 results- 表1
- 表2,表3
- 表4
- 表5,表6
- 表7,表8
- 表9,表A
复制代码 |
|