Получить узлы xml, в которых найден текст для поиска

Вот awk версия:

want=204.12.77.5
awk -v want=$want  -F- '
function canon(ip){
    split(" "ip,x,/[^0-9]+/)
    return sprintf("%03d%03d%03d%03d",x[2],x[3],x[4],x[5])
}
BEGIN { val = canon(want) }
{ low = canon($1); high = canon($2);
  if(val>=low && val<=high)print "in range " $0
}' mylogfile

Функция canon берет ip-адрес, разделяет поля цифр, затем расширяет каждое до 3 цифр и возвращает строку. Она вызывается для 2 значений в каждой строке, и они сравниваются с искомым ip-адресом (заданным в начале), который который также был "канонизирован".

0
18.11.2018, 19:34
0 ответов

Теги

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