Страницы

Поиск по вопросам

пятница, 13 декабря 2019 г.

Linux, вопрос по символу |

#linux #ubuntu #unix


Для чего в некоторых консольных командах используется знак | (вертикальная черта)? 
    


Ответы

Ответ 1



Это так называемый конвейер, позволяющий передать вывод одной команды непосредственно на вход другой. Например, ls | wc -l передаст вывод команды ls команде wc -l, и таким образом осуществится подсчет количества записей в текущем каталоге - ls выдаст текст (на самом деле, набор байт), состоящий из нескольких строк, а wc -l их посчитает. А cat file.txt | grep -i michael передаст содержимое file.txt на вход команды grep, которая найдет все строки с вхождением michael. Более подробно можно почитать тут.

Ответ 2



"труба" используется для передачи стандартного вывода одной программы в стандартный ввод другой. Например можно написать grep bla-bla file.txt Тогда грип будет искать текст bla-bla в файле file.txt . Но Грип загружает весь файл в память и ему может этой самой памяти не хватить и он вывалится в ошибку. Тогда мы можем передать этот файл построчно: cat file.txt | grep bla-bla В этом случае программа cat считывает построчно файл и передаст каждую отдельную строчку grep`у и он не утыкается в полку памяти.

Комментариев нет:

Отправить комментарий