O que o '|' (barra vertical) significa o caractere em um comando Terminal? [duplicado]

11

Exemplo: em um comando de terminal

xdpyinfo | grep resolution
(que tirei de uma resposta), o caractere
|
significa que a saída
xdpyinfo
deve ser enviada para a entrada do programa grep para imprimir uma linha contendo a cadeia
resolution
? Onde devo procurar por tal informação para evitar o preenchimento deste fórum por perguntas simples demais? Obrigado.     
por Tomáš Pečený 23.09.2013 / 14:39

4 respostas

15

A barra vertical | é geralmente chamada de "pipe". É usado para enviar um comando para outro. Isto é, ele direciona a saída do primeiro comando para a entrada do segundo comando. Então sua explicação é bem precisa.

    
por dan08 23.09.2013 / 14:48
8

É chamado pipe (ou pipeline ) e significa que a saída do comando em frente a ele é feita como entrada para o comando por trás dele.

Exemplo:

dmesg | tail
bash --version | tac

Você é bem-vindo para experimentar o comando sem o pipe.

E sim, você está correto: neste caso, o comando xdpyinfo mostra informações e é analisado em grep . grep filtra os resultados e mostra apenas as linhas que têm resolution .

Mais informações sobre pipe :

por Rinzwind 23.09.2013 / 14:48
1

Sua interpretação está correta. O | caractere canaliza a saída do primeiro comando para o fluxo de entrada do segundo. Os dois comandos estão sendo executados em paralelo, como dois processos simultâneos. É uma ilustração do "paradigma de tubos e filtros" (construção de funções complexas por pipelining simples), que é uma marca registrada do Unix.

Para mais informações sobre isso, sugiro que você siga através de algum tutorial sobre bash ou shell script. Existem muitos desses na web. Eu aposto que você ficará surpreso com a elegância e o poder dos shells Unix / GNU.

    
por zwets 23.09.2013 / 15:03
1

O caractere | às vezes é chamado de pipe e é usado para conectar a saída de um comando e alimentá-lo com o outro.

Para que xdpyinfo | grep resolution primeiro execute o comando xdpyinfo (um utilitário que exibe informações sobre o X) sem exibir nenhuma saída. A saída deste comando é inserida no grep (analisador de expressão regular) para localizar quaisquer entradas que contenham resolução.

O que você vê é apenas a informação que deseja e não a saída completa do comando xdpyinfo .

    
por Warren Hill 23.09.2013 / 14:48