0000000 в данном примере - это смещение (шестнадцатеричное, отсчитывается от начала файла) первого байта, напечатанного в конкретной строке.
0000006 в данном примере - это количество (в шестнадцатеричном формате) байтов в файле. В слове "hello" 5 символов и символ перевода строки (0x0a)
Попробуйте отправить эхом более длинный текст или повторить echo "hello" >> 1.txt
несколько раз, чтобы увеличить размер файла. Затем посмотрите результаты hexdump
.
Вы можете использовать скрипт awk
для поиска IP-адресов в данных; собрать каждое их вхождение в массив counts
. Когда все входные данные будут прочитаны, выполните цикл по массиву и распечатайте счетчики и IP-адреса, но только если было более двух вхождений, а затем передайте все это для сортировки:
NF == 7 && $7 == "ESTABLISHED" {
split($6, octets, ".")
ip=octets[1] "." octets[2] "." octets[3] "." octets[4]
counts[ip]++
}
END {
for (i in counts)
if (counts[i] > 2)
print counts[i], i
}
Запустите как:
awk -f awkscript < input | sort -n
При вводе сэмпла выводится только один IP-адрес с 5 вхождениями:
5 10.51.57.203