我正在尝试了解管道的工作原理,但目前遇到了困难。
正在流式传输日志文件,并将其输出通过管道传输到 pigz。我想做的是将 pigz 内容重定向到 python 脚本作为 stdin。
我不知道如何将数据重定向到脚本
目前有效:
./customread file_name | pigz -dc
这会将日志内容显示到标准输出,我如何从这里将其传送到脚本?
我试过了
python script.py < `./customread file_name | pigz -dc`
我想在数据进入时重定向它..
答案1
我不太清楚你想要达到什么目的,但我认为你可以使用另一个嵌套管道。我在 bash 和 zsh 中做过类似的事情。使用 pigz 使用 -c 输出到 stdout,只需将其通过管道传输到寻找 stdin 的 python 脚本即可。
./customread file_name | pigz -dc | python script.py
你试过上面的方法吗?我尝试过;
tail -f /var/log/syslog | grep `hostname` | python test.py
以下是我使用的 Python这个帖子来自 Stackoverflow:
#!/usr/bin/python
import sys
import os
while True:
line = sys.stdin.readline()
if not line:
break
sys.stdout.write(line) # or print, doesn't matter.