Я недавно обнаружил пакет moreutils в Debian (и Ubuntu). Это набор удобных инструментов unix.
Одна из команд - «пописать». На странице руководства говорится:
моча похожа на тройник, но для трубок.
Однако это короткая справочная страница, Я сообщил об этом. Кто-нибудь знает, что он делает, как его использовать, зачем его использовать?
Вот что можно делать с мочой:
seq 5 -1 1 > file
cat file |pee 'sort -u > sorted' 'sort -R > unsorted'
Так что pee работает с оболочками вместо файлов.
bash не нуждается в моче, он может открывать команды оболочки как файлы:
cat file |tee >(sort -u > sorted) >(sort -R > unsorted)
Вероятно, будет легче понять, если вы использовали tee
первый. Этот полезный старый инструмент принимает стандартный ввод и записывает в несколько файлов плюс стандартный вывод. Последующий:
echo "Hello world" | tee one two
Создаст два файла с именем one
и two
, оба содержат строку Hello world
. Он также будет распечатан на вашем терминале.
Сейчас pee
выполняет аналогичную функцию, но вместо перенаправления вывода на несколько файлов он перенаправляет на несколько вторичных команд, ala pipe. Он немного отличается от tee
в том отношении, что он не отправляет исходный stdin на stdout, потому что не имеет смысла объединять его с выводом вторичных команд. Следующий очень простой пример:
echo "Hello world" | pee cat cat
Выведет строку Hello world
к вашему терминалу дважды. Это потому, что каждый из двух экземпляров cat
получает стандартный вывод и делает то, что cat
делает, то есть печать.