Извлечение IP-адресов из файла журнала и их перечисление в другом файле [дубликат]

-1
04.09.2017, 16:23
3 ответа

Я бы использовал что-то вроде:

perl -MRegexp::Common -wnE 'say for /$RE{net}{IPv4}/g' log-file > another-file

Это потребует от вас установки Perl-модуля Regexp::Common, если он не поставляется вместе с вашей ОС. Переключатель -nзаставляет его перебирать строку за строкой по входному файлу; затем он будет перебирать каждое вхождение IP-адреса и выводить каждый из этих IP-адресов в отдельную строку. Модуль Regexp::Commonбудет иметь шаблон, соответствующий IP-адресам, который доступен в $RE{net}{IPv4}.

3
28.01.2020, 05:06

Я использовал awk для помещения IP-адресов в ассоциированный массив с именем "i", используя совпадение в качестве индекса. Затем я печатаю индексы, которые дедуплицируют данные.

awk 'match($0, /[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/) {i[substr($0,RSTART,RLENGTH)]=1}END{for(ip in i){printf("%s\n", ip)}}' sourcefile
3
28.01.2020, 05:06

Вероятно, самым простым способом будет простой grep:

grep -E -o "([0-9]{1,3}[\.]){3}[0-9]{1,3}" /path/to/sourcefile > output.txt

Это позволит извлечь все IP-адреса из исходного файла и записать их в файл output.txt, разделив их новой строкой.

8
28.01.2020, 05:06

Теги

Похожие вопросы