AWK is a text-processing utility on GNU/Linux. It is very powerful and uses a simple programming language. It can solve complex text processing tasks with a few lines of code.
This post demonstrates how to parse Azurer PostgreSQL Server log files using AWK.
How to list “connection authorized” text pattern occurrences in the hour:minute db_user format?
grep "connection authorized" postgresql-2021-12-09_100000.log | awk ' { printf("%s %s\n", substr($2, 1, 5), substr($6, index($6,"user=")+5, index($6, "database=")-6)); } ' 10:59 db_user_1 10:59 db_user_2 10:59 db_user_1 10:59 db_user_2 10:59 db_user_2
How to list top DB users by “connection authorized” text pattern occurrences sorted in descending order?
grep "connection authorized" postgresql-2021-12-09_100000.log | awk ' { printf("%s %s\n", substr($2, 1, 5), substr($6, index($6,"user=")+5, index($6, "database=")-6)); } ' | awk '{count[$2]++} END {for (word in count) print word, count[word]}' | sort -k 2,2 -n -r db_user_1 1821 db_user_2 196 db_user_3 136 db_user_4 136 db_user_5 130
How to list the distribution of “connection authorized” text pattern occurrences per hour:minute (HH24:MI) sorted in descending order by the number of occurrences?
grep "connection authorized" postgresql-2021-12-09_100000.log | awk ' { printf("%s %s\n", substr($2, 1, 5), substr($6, index($6,"user=")+5, index($6, "database=")-6)); } ' | awk '{count[$1]++} END {for (word in count) print word, count[word]}' | sort -k 2,2 -n -r 10:53 644 10:23 509 10:29 502 10:22 479 10:52 463
How to list the distribution of “connection authorized” text pattern occurrences per hour:minute:second (HH24:MI:SS) sorted in descending order by the number of occurrences?
grep "connection authorized" postgresql-2021-12-09_100000.log | awk ' { printf("%s,%s\n", substr($2, 1, 7), $6) } ' 10:29:44 90 10:28:15 67 10:35:02 61 10:05:51 57 10:30:36 56
Top comments (0)