CMD Master
Voltar ao blog
Arnošt Havelka

Enviar a saída de um comando por um pipe

Use | para alimentar o comando seguinte e depois encadeie grep e wc.

Iniciar lição interativa
Enviar a saída de um comando por um pipe

Um pipe | pega na saída do comando à esquerda e usa-a como entrada à direita. Deixa de guardar ficheiros descartáveis só para os filtrar.

Filtrar uma listagem: ls | grep

ls imprime nomes. grep fica com as linhas que lhe interessam. Juntos:

Experimente o comando

Fique só com os nomes correspondentes do ls!

Montar o comando
lsgrep
Escolher um comando
Terminal
C:\Users\User>ls | grep .txt

Ficar com os ficheiros de texto:

Command Prompt
notes.txt readme.txt config.json
C:\Users\User>ls

> escreve para um ficheiro. | escreve para outro comando. Confundi-los é o primeiro erro habitual.

Encadear três comandos

Pode usar pipe mais do que uma vez. Conte linhas correspondentes sem abrir o registo:

printf '%s\n' 'info: started' 'warn: slow' 'warn: timeout' > log.txt
cat log.txt | grep warn | wc -l

cat imprime o ficheiro, grep fica com as linhas de aviso e wc -l conta-as.

Command Prompt
info: started warn: slow info: retry warn: timeout info: done
C:\Users\User>cat log.txt

Construa pipes da esquerda para a direita: produza dados, filtre-os e depois resuma-os.


Teste de conhecimentos

1 / 3

O que faz o operador |?

Referências

Estes links de documentação trazem detalhes confiáveis sobre os comandos usados neste artigo.

A seguir

Procurar texto em ficheiros com grep

Encontre linhas correspondentes num ficheiro e ignore maiúsculas com grep -i.