Знак | между командами строит конвейер: вывод одной команды становится входом следующей.
Кроме двух выходов из прошлого урока, у команды есть вход — стандартный ввод, поток 0. Команды, которые обрабатывают текст, — grep, head, tail, sort — читают файл, если его имя дано, а без имени читают стандартный ввод. Такие команды называют фильтрами.
| соединяет поток 1 команды слева с потоком 0 команды справа. Строки идут от команды к команде напрямую, без файлов, и звеньев в конвейере может быть сколько угодно.
wc с ключом -l считает строки, поэтому в конце конвейера он отвечает на вопрос «сколько». Строки с кодом ответа 404 отбирает grep ' 404 ': пробелы вокруг числа не дают спутать код с частью другого числа.
Посчитай ответы 404
В ~/pipe-lab посмотри три первые строки журнала с кодом 404, а потом сосчитай все такие строки.
Сначала предположи
Сколько строк напечатает вторая команда, с wc -l в конце?
Теперь начни упражнение, выполни команду и сверь прогноз с выводом.