Quando vamos trabalhar com truques "Pipe", "Pipe" assumirá o stdout de um comando e o passa para o stdin do próximo comando.
Vamos conferir algumas das maneiras mais comuns de incorporar o comando "Pipe" em seu uso diário.
Uso básico
É melhor elaborar o método de trabalho de "Pipe" com um exemplo ao vivo, certo? Vamos começar. O comando a seguir informará "Pacman", o gerenciador de pacotes padrão do Arch e todas as distribuições baseadas em arco, para imprimir todos os pacotes instalados no sistema.
Pacman -qqe
É uma lista muito longa de pacotes. Como, sobre pegar apenas alguns componentes? Poderíamos usar "grep". Mas como? Uma maneira seria despejar a saída em um arquivo temporário, “Grep” a saída desejada e excluir o arquivo. Esta série de tarefas, por si só, pode ser transformada em um script. Mas nós apenas script para coisas muito grandes. Para esta tarefa, vamos chamar o poder de "tubo"!
Pacman -qqe | grep
Incrível, não é? O “|” sinal é a chamada para o comando "tubo". Ele agarra o stdout da seção esquerda e a alimenta no stdin da seção direita.
No exemplo acima mencionado, o comando "Pipe" realmente passou a saída no final da parte "grep". Aqui está como isso acontece.
Pacman -QQE> ~/Desktop/Pacman_package.TXT
Grep Python ~/Desktop/Pacman_package.TXT
Tubulação múltipla
Basicamente, não há nada de especial com o uso avançado do comando "Pipe". Depende de você sobre como usá -lo.
Por exemplo, vamos começar empilhando várias tubulações.
Pacman -qqe | grep p | grep t | grep pyA saída do comando do Pacman é filtrada cada vez mais por "Grep" através de uma série de tubulação.
Às vezes, quando estamos trabalhando com o conteúdo de um arquivo, pode ser muito, muito grande. Descobrir o lugar certo de nossa entrada desejado pode ser difícil. Vamos procurar todas as entradas que incluem dígitos 1 e 2.
Demonstração do CAT.txt | grep -n 1 | grep -n 2
Manipulando a lista de arquivos e diretórios
O que fazer quando você está lidando com um diretório com toneladas de arquivos? É muito chato percorrer toda a lista. Claro, por que não torná -lo mais suportável com tubo? Neste exemplo, vamos conferir a lista de todos os arquivos na pasta "/usr/bin".
ls -l| mais
Aqui, “LS” imprime todos os arquivos e suas informações. Então, "Pipe" passa para "mais" para trabalhar com isso. Se você não sabia, "mais" é uma ferramenta que transforma textos em uma visão rigorosa de cada vez. No entanto, é uma ferramenta antiga e, de acordo com a documentação oficial, "menos" é mais recomendado.
ls -l /usr /bin | menos
Classificação de saída
Há uma ferramenta interna "classificada" que levará a entrada de texto e as classificará. Esta ferramenta é uma verdadeira jóia se você estiver trabalhando com algo realmente bagunçado. Por exemplo, eu peguei este arquivo cheio de strings aleatórios.
Demonstração do CAT.TXT
Basta dar um punho para "classificar".
Demonstração do CAT.txt | organizar
Isso é melhor!
Impressão correspondências de um padrão particular
ls -l | encontrar ./ -Type f -name "*.txt "-exec grep 00110011 \;
Este é um comando bastante distorcido, certo? No começo, "LS" produz a lista de todos os arquivos no diretório. A ferramenta "Find" leva a saída, pesquisando ".arquivos txt ”e convoca“ Grep ”para pesquisar“ 00110011 ”. Este comando verificar cada arquivo de texto no diretório com a extensão txt e procurar as correspondências.
Imprima o conteúdo do arquivo de um determinado intervalo
Quando você está trabalhando com um grande arquivo, é comum ter a necessidade de verificar o conteúdo de um determinado intervalo. Podemos fazer exatamente isso com uma combinação inteligente de "gato", "cabeça", "cauda" e, claro, "tubo". A ferramenta "Head" gera a primeira parte de um conteúdo e a "cauda" produz a última parte.
gato| Cabeça -6
gato| cauda -6
Valores únicos
Ao trabalhar com saídas duplicadas, pode ser muito irritante. Às vezes, a entrada duplicada pode causar problemas sérios. Neste exemplo, vamos lançar "uniq" em um fluxo de texto e salvá -lo em um arquivo separado.
Por exemplo, aqui está um arquivo de texto que contém uma grande lista de números com 2 dígitos. Definitivamente existem conteúdos duplicados aqui, certo?
Duplicado de gato.txt | organizar
Agora, vamos realizar o processo de filtragem.
Duplicado de gato.txt | classificar | Uniq> único.TXT
Confira a saída.
morcego único.TXT
Parece melhor!
Tubos de erro
Este é um método de tubulação interessante. Este método é usado para redirecionar o stderr para Stdout e prosseguir com a tubulação. Isso é indicado pelo símbolo “| &” (sem as citações). Por exemplo, vamos criar um erro e enviar a saída para outra ferramenta. Neste exemplo, acabei de digitar algum comando aleatório e passei o erro para "grep".
adsfds | & grep n
Pensamentos finais
Enquanto o "Pipe" em si é bastante simplista de natureza, a maneira como funciona oferece uma maneira muito versátil de utilizar o método de maneiras infinitas. Se você gosta de scripts de bash, é muito mais útil. Às vezes, você pode fazer coisas malucas! Saiba mais sobre scripts de basquete.