我有一个tail -f
命令读取包含 IP 的日志,但是我希望用主机名替换这些 IP,我有一个dhcpd.leases
可供运行该命令的机器使用的文件。
我已经能够将该dhcp.leases
文件转换为(可能?)更可用的格式:
10.0.0.1 Hostname1
10.0.0.2 Hostname2
答案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
- 然后该行被打印到标准输出。