MySQL:マルチデータベースからすべてのメールアドレスを取得しますか?
-
28-10-2019 - |
質問
2000以上のデータベースが含まれているMySQLサーバーにアクセスできます。すべてのデータベースをスキャンして、データベースのテーブルに保存されたすべてのメールアドレスを取得したいと思います。
それでは、すべてのデータベースからメールアドレスを抽出するソリューションを教えてください!?
私はすでにルート特権とphpmyAdminを持っています。
ありがとうございました
解決
すべてのテーブル(つまり、ルートとして)にアクセスできる場合は、すべてのテーブルをダンプして、このようなメールアドレスをグレップすることができます。
mysqldump -u root -p --all-database | egrep -i "\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b"
私が使用した正規表現はここから取られています:http://www. Regual-Expressions.info/email.html
編集:上記のコマンドは、列に関係なく電子メールアドレスを含む行全体を印刷します。専用の列がある場合は、少し変更して電子メールのみを印刷できます。
mysqldump -u root -p --all-database | perl -pe "s/,/\n/g; s/'//g;" | egrep -i "\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b"
これにより、周囲の引用も削除されます。
所属していません StackOverflow