mysqlクエリログから使用しているテーブル名を調査したいです、
具体的にはselect文from句の文字列(テーブル名)を、重複をのぞいた形で列挙したいのです。
しかしgrep検索での正規表現は普通の正規表現と違うのか思ったとおりになりません。
最初は下記のようにしました。
grep -oi "from .+? " general-query.log |sort |uniq -c |sort -r
"from "の含まれる行全体とマッチしまっているようでした。
他
grep -oi "from \S*" general-query.log |sort |uniq -c |sort -r
ダメでした。重複を除いてくれてないというか、「FROM」より前の文字列がマッチしてしまってる?
ようでした。
1 1015:FROM wp_options 1 10159:FROM wp_posts 1 10157:FROM wp_posts 1 10156:FROM wp_postmeta 1 10155:FROM wp_posts 1 10154:FROM wp_options 1 10153:FROM wp_options 1 10148:FROM wp_options 1 10147:FROM wp_tsa_spam 1 10146:FROM wp_options 1 10145:FROM wp_options