Почему трубопровод обрезает содержимое, а перенаправление в / из промежуточного файла - нет? - PullRequest
0 голосов
/ 12 апреля 2019

Я вижу, что мой контент обрезается при использовании канала в такой последовательности, как:

jq ... |
jq ... |
tee tee_file |
jq ... |

# content gets truncated here

head ... | sed ... | awk ... | awk ... | sed

... но все работает нормально, если я перенаправляю вывод в промежуточный файл, а затем сразу передаю этот файл в нисходящий потокпроцессы:

jq ... |
jq ... |
tee some_file |
jq ... > intermediary_file

# content remains intact here

cat intermediary_file |
head ... | sed ... | awk ... | awk ... | sed

tee_file не используется в качестве входных данных в нисходящей части вышеуказанной последовательности трубопроводов, только в некоторых более поздних командах.

Использование --unbuffered в jqне помогает.

Каковы причины такого различия в поведении и как я могу это исправить?


MacOS High Sierra 10.13.6 (17G5019) GNU bash, версия 3.2.57 (1) -релиз (x86_64-apple-darwin17)

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