1

У меня есть команда tail -f читает журнал, содержащий IP-адреса, однако я хочу заменить эти IP-адреса именами хостов. У меня есть файл dhcpd.leases доступный для компьютера, на котором он выполняется.

Я был в состоянии преобразовать файл dhcp.leases в (возможно?) более удобный формат:

10.0.0.1 Hostname1
10.0.0.2 Hostname2

1 ответ1

1

Предполагая, что имя файла файла, который вы хотите подключить, является file а имя файла списка - list . Я также предполагаю, что list файлов выглядит так:

10.0.0.1 Hostname1
10.0.0.2 Hostname2

Тогда используйте это:

tail -f file | while read l; do \
  while read i h; do l="${l//$i/$h}"; done <list; echo "$l"; \
done
  • Команда tail отправляется в цикл while, который строка за строкой читает входную переменную $l .
  • Внутри этого цикла while есть другой цикл while, который построчно читает list файлов и заменяет значения из list в переменной $l .
  • Затем строка выводится на стандартный вывод.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .