Я собираюсь догадаться, что у вас есть проблемы, решающие, насколько велико каждое поле.(Ваш вопрос неясен.) Я бы сказал, что вам не нужно;просто разбейте каждую строку на 2 поля и разберитесь со вторым полем.
С помощью awk вы указываете, что является разделителем, с опцией -F, и поскольку знак «больше» (>) имеет смысл во многих оболочкахВы должны как-то избежать этого.В Linux вы можете использовать обратную косую черту для этого.
Поскольку вы используете awk
, вам не нужны sort
и uniq
;можно использовать ассоциативные массивы.
Предполагая, что вы НЕ игнорируете порты:
awk -F\> '{dest_ips[$2]++}
END {
for (ip in dest_ips) {
printf "%s: %d\n", ip, dest_ips[ip]
}
}' traffic-log-cust.txt
Если вы игнорируете порты, сначала нужно проанализировать это второе поле (возможно, используя * 1015).*).