Linux / Debian - O que 'fazer xixi' no moreutils faz?

19

Eu recentemente descobri o pacote 'moreutils' no Debian (e no Ubuntu) . É uma coleção de ferramentas convenientes do Unix.

Um dos comandos é "xixi". A página man diz:

pee is like tee but for pipes.

No entanto, é uma página man curta, Eu registrei um bug sobre isso . Alguém sabe o que faz, como usá-lo, porque alguém o usaria?

    
por Rory 21.12.2009 / 11:21

2 respostas

24

Veja o que você pode fazer com xixi:

seq 5 -1 1 > file
cat file |pee 'sort -u > sorted' 'sort -R > unsorted'

Então, xixi funciona com canos do shell em vez de arquivos.

o bash não precisa fazer xixi, ele pode abrir comandos do shell como arquivos:

cat file |tee >(sort -u > sorted) >(sort -R > unsorted)
    
por 21.12.2009 / 11:51
16

É mais fácil entender se você usou tee primeiro. Essa ferramenta antiga e útil usa entrada padrão e grava em vários arquivos, além de saída padrão. O seguinte:

echo "Hello world" | tee one two

Será criado dois arquivos, denominados one e two , ambos contendo a string Hello world . Ele também será impresso no seu terminal.

Agora, pee executa uma função semelhante, mas, em vez de redirecionar a saída para vários arquivos, ela redireciona para vários comandos secundários, os pipes de ala. Ele difere ligeiramente de tee no que diz respeito a não enviar o stdin original para stdout porque não faria sentido combiná-lo com a saída dos comandos secundários. O seguinte exemplo muito simples:

echo "Hello world" | pee cat cat

Produzirá a string Hello world no seu terminal duas vezes. Isso ocorre porque cada uma das duas instâncias de cat recebe a saída padrão e faz o que cat faz, que é impressão.

    
por 21.12.2009 / 11:51