Encadeando Múltiplos Comandos
Parte da seção Fundamentos do Journey de Terminal da Coddy — lição 45 de 82.
Você não está limitado a conectar apenas dois comandos. Pipes podem encadear quantos comandos você precisar, com cada um processando a saída do comando anterior.
Basta adicionar mais símbolos | para estender o pipeline:
cat data.txt | sort | head -5Isso lê o arquivo, ordena todas as linhas em ordem alfabética e então mostra apenas os primeiros 5 resultados. Os dados fluem da esquerda para a direita através de cada comando em sequência.
Aqui está um exemplo prático que encontra entradas únicas ordenadas:
cat names.txt | sort | uniqO conteúdo do arquivo é ordenado primeiro (o que agrupa as duplicatas), então o uniq remove linhas duplicadas consecutivas. A ordem importa aqui — o uniq remove apenas duplicatas adjacentes, então a ordenação deve vir primeiro.
Você pode adicionar ainda mais estágios. Para contar quantos nomes únicos existem:
cat names.txt | sort | uniq | wc -lCada pipe adiciona outra etapa de transformação. Ao construir pipelines mais longos, pense no que cada comando precisa como entrada e no que ele produz como saída. O formato de saída de um comando deve fazer sentido como entrada para o próximo.
Desafio
FácilO arquivo visitors.txt contém uma lista de nomes de visitantes com duplicatas. Use um pipeline com três comandos para contar quantos visitantes únicos existem.
Execute um único comando que:
- Use
catpara lervisitors.txt - Encaminhe (pipe) para
sortpara organizar os nomes em ordem alfabética - Encaminhe (pipe) para
uniqpara remover entradas duplicadas - Encaminhe (pipe) para
wc -lpara contar os nomes únicos
Dica: Encadeie todos os quatro comandos usando múltiplos símbolos
|. Lembre-se de que ouniqapenas remove duplicatas adjacentes, portanto, a ordenação deve vir antes dele.
Folha de consulta
Pipes podem encadear vários comandos, com cada comando processando a saída do anterior. Use o símbolo | para conectar os comandos:
cat data.txt | sort | head -5Os dados fluem da esquerda para a direita através de cada comando em sequência.
Para encontrar entradas ordenadas exclusivas:
cat names.txt | sort | uniqO comando uniq remove linhas duplicadas consecutivas, portanto, a ordenação deve vir primeiro para agrupar as duplicatas.
Para contar entradas exclusivas, adicione wc -l ao pipeline:
cat names.txt | sort | uniq | wc -lAo construir pipelines, certifique-se de que o formato de saída de um comando faça sentido como entrada para o próximo.
Experimente você mesmo
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
4Diretórios
Criar um DiretórioCopiar um DiretórioMover e Renomear um DiretórioExcluir um DiretórioResumo - Operações com Diretórios7Conteúdo do Arquivo
Head e TailContagem de PalavrasComando SortComando UniqGrep BásicoGrep com FlagsResumo - Detetive de Texto10Projeto Analisador de Log
Visão Geral do ProjetoVisualizando o Arquivo de Log2Navegação
Imprimir Diretório de TrabalhoListar ArquivosMudar DiretórioCaminhos Absolutos vs RelativosDiretório Home e RaizResumo - Encontre Seu Caminho8Redirecionamento
Saída PadrãoSobrescrever em um ArquivoAnexar a um ArquivoEntrada PadrãoErro PadrãoRecapitulação - Construtor de Log3Arquivos
Criar um ArquivoLer um ArquivoCopiar um ArquivoMover e Renomear um ArquivoExcluir um ArquivoResumo - Operações com Arquivos6Curingas e Padrões
O Curinga AsteriscoO Curinga InterrogaçãoCuringas de ColchetesCombinando CuringasResumo - Operações Seletivas9Pipes
O Que é um PipeEncadeando Dois ComandosEncadeando Múltiplos ComandosPipe com GrepResumo - Pipeline de Dados