I need to find all the table names alone in all select statements in my query log. Is there any way to grep
(or) any other option, to take the strings that comes immediately after the word FROM
in my file ..
Example: file
contains something like this
JavaScript
x
select a, b, c FROM `table1` join `table2` etc
insert into ..
commit
select * FROM `tablex` ..
select y,s,h FROM `tabley` ..
.
.
.
Now I want the list of the distinct tables alone from the select stmts. i.e,
JavaScript
table1
tablex
tabley
Advertisement
Answer
I’m not sure if I understand you correctly but if you want to extract the first word that comes after ‘from’ you can try something like this:
JavaScript
➜ tmp cat log
select id, name from account where name = 'John';
select * from price where id > 0;
➜ tmp cat log | gawk -F'from ' '{print $2}' | gawk '{print $1}'
account
price
➜ tmp
If you want to print names of joined tables as well you need to extend it.