Интерпретатор командного языка Unix позволяет перенаправлять выход одной команды на вход другой. Для этого служит операция ‘|’ – вертикальная черта.
Примечания. 1). Команды или программы, которые вводят данные со стандартного ввода, а выводят на стандартный вывод – называются фильтрами. 2). Синхронизация работы фильтров в конвейере производится ядром ОС Unix.
Пример_1: Подсчитать количество файлов в текущем каталоге.
а) «обычный» вариант:
ls –l > file
| направляет результаты работы команды ls в файл file
|
wc < file
| команда wc (word count – счетчик слов) подсчитывает
число строк, слов и символов во входном потоке. Данные
во входной поток команды wc перенаправлены из файла
file
|
rm file
| удаляется рабочий файл file.
|
б) вариант с конвейером:
%ls –l | wc
Как только команда ls начинает выдавать результаты, они сразу поступают на вход фильтра wc. Никакого рабочего промежуточного файла не требуется.
Пример_2: %ls –l | more
применение фильтра more позволяет просматривать большие каталоги.
Пример_3: %ls | grep old
распечатать из вывода команды ls только те строки, которые содержат цепочку символов “old” (контекстный поиск этой цепочки осуществляет фильтр grep).
Пример_4: %ls | grep old | wc
подсчитать количество файлов в текущем каталоге, имена которых содержат цепочку символов “old”.