Awk general-query.log for INSERT INTO
I have a large mysql general query log which looks like this:
110301 2:19:29 268341 Query SELECT option_value FROM wp_options WHERE option_name = 'sidebars_widgets' LIMIT 1
268341 Query SELECT autoload FROM wp_options WHERE option_name = 'rewrite_rules'
268341 Query DELETE FROM wp_options WHERE option_name = 'rewrite_rules'
268341 Query SELECT option_value FROM wp_options WHERE option_name = 'rewrite_rules' LIMIT 1
268341 Query SELECT t.*, tt.开发者_Go百科* FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON t.term_id = tt.term_id WHERE tt.taxonomy IN ('category') ORDER BY t.name ASC
268341 Query SELECT ID, post_name, post_parent FROM wp_posts WHERE post_type = 'page'
268341 Query SELECT * FROM wp_posts WHERE ID = 9191 LIMIT 1
268341 Query SELECT ID, post_name, post_parent FROM wp_posts WHERE post_type = 'attachment' AND post_parent = 9191
268341 Query SELECT * FROM wp_posts WHERE ID = 8805 LIMIT 1
I'd like to use AWK to find all the INSERT INTO statements?
gawk "/INSERT INTO/" query.log
I reckon you'll do additional processing, otherwise as noted before, you don't really need awk.
Why awk? grep is better suited.
grep -i "INSERT INTO" filename.log
I would use grep with -o option:
$ #with your input in /tmp/file
$ grep -O 'SELECT .*' /tmp/file
SELECT option_value FROM wp_options WHERE option_name = 'sidebars_widgets' LIMIT 1
SELECT autoload FROM wp_options WHERE option_name = 'rewrite_rules'
SELECT option_value FROM wp_options WHERE option_name = 'rewrite_rules' LIMIT 1
SELECT t.*, tt.* FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON t.term_id = tt.term_id WHERE tt.taxonomy IN ('category') ORDER BY t.name ASC
SELECT ID, post_name, post_parent FROM wp_posts WHERE post_type = 'page'
SELECT * FROM wp_posts WHERE ID = 9191 LIMIT 1
SELECT ID, post_name, post_parent FROM wp_posts WHERE post_type = 'attachment' AND post_parent = 9191
SELECT * FROM wp_posts WHERE ID = 8805 LIMIT 1
精彩评论