Несколько awk от одной строки - PullRequest
0 голосов
/ 10 октября 2018

Я получаю выходные данные из журналов доступа для просмотра количества обращений, IP-адреса и пользовательского агента.Вывод не работает, потому что он не захватывает все, что мне нужно в строке агента пользователя.

Пример вывода:

Getting access logs from /var/log/apache2/my.access.log ...

Sorting unique IPs...

COUNT   IP Address | User Agent String

15165 xx.xxx.xxx.xx | "Mozilla/5.0 <--- Need everything between quotes
10704 xx.xxx.xxx.xx | "Mozilla/5.0      not just this portion
 9915 xx.xxx.xxx.xx | "Mozilla/5.0
 8240 xx.xxx.xxx.xx | "Mozilla/5.0
 7770 xx.xxx.xxx.xx | "Mozilla/5.0
 7266 xx.xxx.xxx.xx | "Mozilla/5.0

Строка, которая получает эту информацию:

cat /var/log/apache2/my.access.log | awk '{print $11 " | " $24 " " $25 " " $26}' | sort -n | uniq -c | sort -nr | head -30

Я понимаю, что часть с $ 24 "" $ 25 "" $ 26 на самом деле можетбыть очищенным с

awk -F\" '{ print $6 }'

Мой вопрос: как я могу добавить их обоих в одну строку, если это возможно?

Пример необработанного вывода файла журнала (с измененным текстом):

[2018-10-10 10:11:22 (Wed)] | <servername> | R:<servername> | www.<thewebsite>.com | xxx.xxx.xx.xxx |"GET /script/that/was/accessed HTTP/1.1" | 200 | 1430 | 8104 | "https://www.<thewebsite>.com" | "Mozilla/5.0 (Windows NT 6.1; Win64; x64; Trident/7.0; rv:11.0) like Gecko"

Мне нужен последний раздел, начинающийся с "Mozilla / 5.0" вплоть до другой кавычки, но вта же строка, что и у других awk.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...