1

Я пытаюсь понять, как работает трубопровод, и застрял на этом этапе.

Файл журнала передается в потоковом режиме, а его выходные данные передаются в pigz. Я пытаюсь перенаправить содержимое pigz на скрипт на python как stdin.

Я не могу понять, как перенаправить данные в скрипт

В настоящее время это работает:

./customread file_name | pigz -dc

Это показывает содержимое журнала в стандартный вывод, как я могу передать его в сценарий отсюда?

я пробовал

python script.py < `./customread file_name | pigz -dc`

Я хочу перенаправить данные, как они поступают ..

1 ответ1

2

Не слишком хорошо знаком с тем, к чему вы стремитесь, но я думаю, что вы можете просто использовать другую вложенную трубу. Я сделал подобное в Bash и Zsh. С выводом pigz в stdout с -c, просто передайте это в ваш скрипт на python, ищущий stdin.

./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.

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