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. Os pipes podem encadear quantos comandos forem necessários, 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, em seguida, exibe apenas os 5 primeiros resultados. Os dados fluem da esquerda para a direita por cada comando em sequência.
Aqui está um exemplo prático que encontra entradas únicas e ordenadas:
cat names.txt | sort | uniqO conteúdo do arquivo é classificado primeiro (o que agrupa as duplicatas), depois uniq remove as linhas duplicadas consecutivas. A ordem é importante aqui: uniq remove apenas duplicatas adjacentes, portanto a classificação deve vir primeiro.
Você pode adicionar ainda mais etapas. Para contar quantos nomes únicos existem:
cat names.txt | sort | uniq | wc -lCada pipe adiciona outra etapa de transformação. Ao criar pipelines mais longos, pense no que cada comando precisa receber como entrada e no que 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 quatro comandos para contar quantos visitantes únicos existem.
Execute um único comando que:
- Use
catpara lervisitors.txt - Direcione para
sortpara organizar os nomes em ordem alfabética - Direcione para
uniqpara remover entradas duplicadas - Direcione para
wc -lpara contar os nomes únicos
Dica: Encadeie os quatro comandos usando vários símbolos
|. Lembre-se de queuniqremove apenas duplicatas adjacentes, portanto, a ordenação deve vir antes dele.
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 DadosPratique por conta própria: Playground de Terminal