将stdin传递给Unix主机或挖掘命令

tom*_*asz 7 host dig

假设我有一个列入我正在拖尾的日志的IP列表:

1.1.1.1
1.1.1.2
1.1.1.3 
Run Code Online (Sandbox Code Playgroud)

我想轻松地将它们解析为主机名.我希望能够

tail -f access.log | host - 
Run Code Online (Sandbox Code Playgroud)

哪个失败,因为主机不会以这种方式理解来自stdin的输入.无需编写静态文件或回退到perl/python/etc,最简单的方法是什么?

Sin*_*our 20

用途xargs -l:

tail -f access.log | xargs -l host
Run Code Online (Sandbox Code Playgroud)

  • 使用"xargs -l"(或"xargs -L 1")确保为每一行运行命令. (7认同)

Juk*_*nen 5

您还可以使用read内置:

tail -f access.log | while read line; do host $line; done
Run Code Online (Sandbox Code Playgroud)