0

ネイティブ PHP のすべてのスクリプトからすべての MySQL クエリを取得しようとしています。grepを使用して、以下のクエリからのみテーブル名を取得しようとしています。以下は、私が思いついたものに浪費された私の努力です。

FROM 'tablename'

FROM tablename

FROM apn.tablename

FROM apn.table_name

FROM 'apn.tablename'

grep -ionER "(FROM)[[:space:]](.*[a-zA-Z\d_.\`])[\s]"

テーブル名が終了した直後にgrepキャプチャがテキストのキャプチャを停止することが重要ですが、私のgrepはそうではありません。

この情報を表示するには、結果が必要です。

(スクリプトの場所) : (行番号) : (テーブル名)

/var/www/sites... : Line 31 : example_table_name

4

3 に答える 3

0

次の行を試しました。ドット、ダッシュ、一重引用符を使用して例を取り、テーブル名を引き出します。grep/gawk/sed 部分を取得して、PHP コードをループできます。

    echo "select * from 'the_db.the_table' where the_result=1;" | | grep -ioE "(from)[[:space:]]([a-zA-Z0-9\_\.\']*)[[:space:]]" | gawk '{ print $2 }' | sed -es/\'//g

    the_db.the_table

于 2013-03-30T01:42:54.687 に答える