Требуется только родительский домен из URL-адреса в файле dnsmasq.log - PullRequest
0 голосов
/ 29 мая 2020

Я хочу получить имена веб-сайтов, посещаемых подключенными клиентами локальной сети, из файла dnsmasq.log. Пока мне удалось это сделать.

cat /tmp/dnsmasq.log | grep query | egrep -v 'AAA|SRV|PTR' |  awk '{print $1" "$2" "$3","$8","$6}'

29 мая 12: 00: 17,127.0.0.1, ftp.box.com

29 мая 12:00: 33,10.0.0.41,2. android .pool.ntp.org

Мне нужен вывод как

29 мая 12:00: 17,127.0.0.1, поле .com

29 мая 12: 00: 33,10.0.0.41, ntp.org

Мне нужно только имя родительского домена в выводе. Пожалуйста, помогите.

Спасибо

1 Ответ

2 голосов
/ 29 мая 2020

Не могли бы вы попробовать следующие, написанные и протестированные с показанными образцами. Учитывая, что вам нужны последние 2 элемента вашего URL.

awk 'BEGIN{FS=OFS=","} {num=split($NF,array,".");$NF=array[num-1]"."array[num]} 1' Input_file

Пояснение: Добавляем подробное объяснение.

awk '                                ##Starting awk program from here.
BEGIN{                               ##Starting BEGIN section of this awk program from here.
  FS=OFS=","                         ##Setting field separator and output field separator as comma here.
}
{
  num=split($NF,array,".")           ##Splitting last field and metioning . as separator.
  $NF=array[num-1]"."array[num]      ##Setting last column value as 2nd last element DOT and last element of array here.
}
1                                    ##1 will print lines here.
'  Input_file                        ##Mentioning Input_file name here.
...