Нет, потому что stdin и stdout - это отдельные каналы. Пока вы явно не передадите данные по каналу, соединения не будет. Вы же не ожидаете, что вывод из ваших операторов печати будет входом для последующего оператора ввода?
Я разобрался, спасибо за указатели, ребята. Проблема заключалась в том, что grep рекурсивно искал «TODO:» в файле todo.txt, а затем записывал эти результаты обратно в файл todo.txt. Когда я открыл todo.txt, он был заполнен одним и тем же текстом, повторяющимся снова и снова. Очевидно, мне следовало использовать параметр - exclude = "todo.txt"
в grep
. После добавления он работает отлично.