linux pipe (|) всегда блокируется? - PullRequest
1 голос
/ 04 апреля 2020

Я хотел бы объединить 2 linux команд таким образом, чтобы команда 1 могла непрерывно передавать / передавать данные в команду 2. Команда 1 в моем случае генерирует (построчный) экспорт базы данных, который я хотел бы передать в команду 2 (которая будет вызывать функцию для записи каждой строки экспорта данных в новую базу данных).

Например:

 command 1 | command 2 

Это решение на основе Phyton выглядит действительно хорошо, но также блокирует, и просто читает крепкую строку построчно ПОСЛЕ того, как все это доступно .. Как передать ввод в python построчно из linux программы?

В качестве фона, Я пытаюсь экспортировать 10 ТБ Cassandra db, что я могу сделать с помощью dsbulk. Моя идея / предпочтение здесь состоит в том, чтобы не создавать экспорт 10 ТБ, а затем обрабатывать его, я хотел бы обработать его «в полете»

Любые указатели оценены, спасибо.

1 Ответ

1 голос
/ 04 апреля 2020

source.py

for i in range(1000):
    print("Test", i)

dest.py

import sys

for line in sys.stdin:
    print(line.swapcase().strip())

Затем попробуйте что-то вроде python3 source.py | python3 dest.py

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...