Nesta aula do Curso de Linux Básico | XP IT Cursos, aprenderemos a utilizar comandos de filtros em pipes no terminal Linux.
Depois de nossas últimas aulas em que entendemos o conceito de Fluxos Padrão Linux e conhecemos redirecionamentos e pipes, agora vamos aprender a trabalhar com o uso de filtros juntamente com estes recursos.
Curso Linux : Básico
🎦 Módulo 05 : Aula 17 : Como utilizar filtros com Pipes Linux 🐧
🎦 Como Usar Redirecionamento e Pipe Linux ✅💻
🕐 Conteúdo
⏺ Introdução
⏺ Pré Requisitos : Aula
⏺ O que são filtros em Pipes ? para que servem e como eles funcionam ?
⏺ Comandos mais utilizados como filtros em Pipes
- Comando wc
- Comando sort
- Comando tee
- Comando find
- Comando grep
- Comando tr
- Comando head
- Comando tail
- Comando xargs
- Comando awk
⏺ Exemplos Práticos com uso de filtros em Pipes : Linux
⏺ Pipeline Linux
Esta aula faz parte do Curso Linux Básico da XP IT Cursos, uma plataforma ensino completa que irá proporcionar seu aprendizado de uma forma rápida e consistente.
XP IT Cursos
A XP IT Cursos oferece uma oferta a preços acessíveis a Plataforma de Aprendizado com Vídeo Aulas do WebMundi.com + Trilha de Aprendizagem, Material didático em PDF, exercícios de fixação / Revisão de Conteúdo, questionários e o final do curso o Certificado de Conclusão.
+ Garanta seu desconto exclusivo em : https://www.xpitcursos.com.br
Aula # 17 : Utilização de filtros em Pipes Linux – Módulo 5 👩🏻💻🐧
[Canal Web Mundi.com + XP IT Cursos]
O que são comandos de filtros em Pipes : Linux ?
Os filtros são comandos podem ser utilizados com pipes ou redirecionadores que alteram a saída dos dados canalizados no pipe.
Os comandos de filtro também são comandos padrão do Linux que podem ser usados sem pipes.
Filtros em pipes : Linux : Para que servem ?
Os comandos de filtragem ajudam a classificar, exibir e selecionar partes da saída de um comando.
Filtros em pipes : Linux : Como Funcionam ?
Basicamente os filtros tomam a entrada padrão Linux e realizam uma operação sobre ela, e enviam o resultado para uma saída padrão Linux.
Desta forma, os filtros podem ser utilizados para processar informações de forma poderosa e versátil.
A seguir vamos conhecer os comandos mais comuns no uso de filtros.
Comandos de filtro : Redirecionamentos e Pipes : Linux
Agora vamos conhecer os Comandos mais usados em filtros, alguns comandos já vimos alguns aqui no curso em aulas anteriores como grep, find, tr, wc, sort entre outros, mas existem outros que nunca vimos. Então vamos lá.
Comandos mais usados em filtros : Linux
A seguir alguns comandos que podem ser utilizados como filtros em pipes Linux.
Para o vídeo não ficar cansativo, vou apenas citar o comando e caso você queira entender um pouco mais sobre sua finalidade e uso, pode dar um pause aqui ou acessar nosso roteiro com todo este detalhamento.
- wc – o wc conta caracteres, linhas e palavras.
- sort – Classifica entrada padrão, então envia o resultado classificado para a saída padrão.
- tee – O comando tee envia o resultado do programa ao mesmo tempo para a saída padrão (tela) e para um arquivo. Este comando deve ser usado com o pipe “|”.
- find – Find retorna arquivos com nomes de arquivo que correspondem ao argumento passado para find.
- grep – Grep retorna o texto que corresponde ao padrão de string passado para grep.
- tr – localiza e substitui uma string por outra. O tr pode ser usado para executar tarefas como conversões de MAIÚSCULAS/minúsculas ou mudar os caracteres de terminação da linha de um tipo para outro (por exemplo, a conversão de arquivos de texto do DOS para arquivos de texto estilo Unix).
- head – Envia o resultado das primeiras poucas linhas a partir da entrada. Útil para obter o cabeçalho de um arquivo.
- tail – Envia o resultado das últimas linhas a partir de sua entrada. Útil para obter resultados como por exemplo as entradas mais recentes de um arquivo de log.
- xargs – Este comando é utilizado para que a partir de uma lista de argumentos, executar um comando passando essa lista como argumento(s) desse comando.
- awk – Uma linguagem de programação inteiramente projetada para a construção de filtros. Extremamente poderosa.
Além desses, existem outros comandos que podem ser usados para filtragem de resultados, vamos a explicação de alguns de uso mais frequente e mais simples de entender.
Exemplos Práticos uso de filtros com Pipes : Linux
Como vimos em nossa aulas anteriores, o pipe encadeia comandos no terminal Linux
Exemplo:
comando1 | comando2
No exemplo, o pipe informa ao shell que queremos usar a saída do comando1 à esquerda como entrada para o comando2 à direita.
Resumindo o Pipe redireciona a saída padrão do primeiro comando para a entrada padrão do segundo comando.
Veja alguns comandos que usamos em nossa aula anterior:
ls | wc -l
cat webmundi.txt | more
cat webmundi.txt | less
cat animais.txt | sort
Mas podemos encadear pipes e filtrar a saída de um comando, usando um comando de filtro
Vamos a um exemplo pratico passo a passo no terminal do linux.
Primeiro vamos usar um comando simples sem pipe ou filtro, como por exemplo :
wc -l *.txt
o comando wc -l conta as linhas de um arquivos como estou utilizando *.txt digo ao bash que quero a contagem da quantidade de linhas somente dos arquivos com extensão .txt
Porem veja que a saída é desordenada e quero classificar meu resultado de forma nuerica crescente.
webmundi@webmundi-VirtualBox:~$ wc -l *.txt
11 animais-alfabetico.txt
11 animais.txt
1171 erros.txt
1165 find.erros.txt
8 mesatual.txt
0 mes.txt
34 novotexto.txt
4193 resultados.txt
31 roteiro.txt
3 textonovo.txt
34 webmundi.txt
6661 total
Para isso, Podemos utilizar um comando de filtro como o sort para ordenar o resultado do comando, com isso, podemos enviar a saída do comando wc
diretamente para o comando sort
, como o seguinte comando:
wc -l *.txt | sort -n
Com isso, o resultado é gerado de forma ordenada por número de linha.
webmundi@webmundi-VirtualBox:~$ wc -l *.txt | sort -n
0 mes.txt
3 textonovo.txt
8 mesatual.txt
11 animais-alfabetico.txt
11 animais.txt
31 roteiro.txt
34 novotexto.txt
34 webmundi.txt
1165 find.erros.txt
1171 erros.txt
4193 resultados.txt
6661 total
Pipeline Linux
Podemos encadear mais os comandos, utilizando mais de um operador pipe.
Este Recurso é chamado de Pipeline
Exemplo:
comando1 | comando2 | comando3 | comando4
Pipeline é uma sequência de programas/comandos separados pelo operador ‘ | ‘ onde a saída de execução de cada comando é dada como entrada para o próximo comando.
Cada comando em um pipeline é executado em um novo subshell.
Encadeamento de pipes = Pipeline
Filtros em Pipeline Linux
No Pipeline podemos usar comandos para filtrar a saída, que será utilizada como entrada para o próximo comando a direita.
Vamos para nosso exemplo anterior, dando uma incrementada e formando um pipeline.
Usando nosso exemplo, podemos usar pipes para enviar a saída de wc
para sort
e depois a saída do sort resultante para head
:
wc -l *.txt | sort -n | head -n 1
E veja que este pipeline trará somente o primeira linha do resultado (head -n 1
), se mudarmos para head -n 2,
Retornará a 1a e 2a linha.
Posso fazer uma variante deste comando usando o tail que mostrará as 3 ultimas linhas do resultado do comando wc de forma ordenada pelo sort
wc -l *.txt | sort -n | tail -n 3
Comando tee
Vamos agora conhecer o comando tee, ele obedece ao seguinte padrão:
comando | tee arquivo
O comando tee redireciona a saída padrão do comando para um arquivo e sobrescreve seu conteúdo. Em seguida, ele exibe a saída redirecionada no terminal.
Ele cria um novo arquivo se o arquivo ainda não existir.
No contexto do padrão, o tee é usado para visualizar a saída de um comando enquanto simultaneamente salva esta saída em um arquivo.
Vamos a exemplos práticos:
ls -la | tee listadir.txt
clear
cat listadir.txt
clear
wc -l *.txt | sort -n | tee linarquivo.txt
clear
cat linarquivo.txt
clear
Exemplos de uso comandos find e grep como filtros em um pipe / pipeline Linux
Agora vamos aprender a usar o comando find e grep em pipes e pipelines Linux.
Estes comandos são bastante utilizados em filtros com pipes, e Já foram tratados aqui em nosso curso e só para relembrar o que eles fazem, segue suas descrições breves:
- O find retorna arquivos com nomes de arquivo que correspondem ao argumento passado para find.
Exemplo: find /var lib
Esta instrução faz uma pesquisa no diretório /var e suas subpastas e retorna nomes de arquivos e extensões.
- grep que retorna o texto que corresponde ao padrão de string passado para o comando.
Exemplo Prático : Utilização de Find e Grep como filtros em pipes
Agora no Terminal Linux, vamos fazer uma busca em /var trazendo somente arquivos e diretórios que contenham a palavra python
Para isso, usamos o seguinte comando:
find /var lib | grep python
Ou seja o comando find faz uma pesquisa no diretório /var e suas subpastas e retorna nomes de arquivos e extensões que contenham a string(texto) igual a python.
Vamos a mais um exemplo utilizando pipes e redirecionamentos juntamente com filtros
ls ~ | grep *txt | tr w W >> ls_log.txt
Este pipeline realiza um ls na pasta do usuário (~) e o pipe envia saída para o grep que filtra apenas conteúdos com a string txt depois o pipe envia a saída para o comando tr que localiza a string w e substitui por outra string W
veja o resultado em:
cat ls_log.txt
Exemplo de uso do Comando xargs : Linux
Vamos agora conhecer o comando xargs que também pode ser utilizado como lista de filtros ou parâmetros para comandos de terminal Linux
O comando xargs é utilizado para que a partir de uma lista de argumentos, seja possível executar um comando passando essa lista como argumento(s) de comando no terminal.
Parece um pouco complicado, mas vamos a prática diretamente no terminal.
Criei um arquivo no nano chamado diretorios.txt e nele inseri 3 linhas com o seguinte conteúdo:
cat diretorios.txt
dirwebmundi1
dirwebmundi2
dirwebmundi3
Vamos usar o arquivo diretorios.txt como dados de entrada (lista de argumentos) para xargs
.
O comando que vamos usar é este:
cat diretorios.txt | xargs -I % sh -c 'echo %; mkdir %'
Este comando cria diretórios a partir do nome fornecido pelo arquivo diretorios.txt
Para exibir os diretórios criados, usamos:
ls -lha
Mas vamos entender o comando, dividindo por partes:
- cat diretorios.txt | Envia o conteúdo do arquivo diretorios.txt (todos os novos nomes de diretório) para xargs.
- xargs -I % : Isso define uma “string de substituição” com o token “%”.
- sh -c : Isso inicia um novo subshell. O – c (comando) diz ao shell para ler os comandos da linha de comando.
- ‘echo %; mkdir %‘ : cada um dos tokens “%” será substituído pelos nomes de diretório que são passados xargs.
O Comando echo imprimirá o nome do diretório e o comando mkdir criará o diretório.
Este último comando criou 3 diretórios na pasta corrente usando o comando xargs.
Vamos agora criar uma variante do comando anterior usando xargs e excluindo os diretórios criados
cat diretorios.txt | xargs -I % sh -c 'echo %; rmdir %'
Conferindo se os diretórios foram excluídos
ls -lha
Exemplo de uso do awk : Linux
Outro exemplo de utilização de comandos de terminal com pipes e filtros é a linguagem awk.
A awk é uma linguagem de programação inteiramente projetada para a construção de filtros e é extremamente poderosa.
A linguagem awk permite a manipulação de textos a partir de uma sequência de padrões. É uma linguagem interpretada (não há necessidade de compilação).
Vamos a um exemplo básico da utilização da linguagem awk, pois o assunto é extenso e não caberia neste curso básico.
No terminal, vamos a um exemplo para imprimir o arquivo de senhas (/etc/passwd)
Este arquivo possui dados dos usuários delimitado por : (dois pontos), então uso o comando:
awk ‘{ print $0 }’ /etc/passwd
Este comando tem o mesmo resultado de:
cat /etc/passwd
Como o arquivo passwd é delimitado por : (dois pontos) e com isso é possível começar a extrair dados deste arquivo de forma individual.
Então vamos começar a usar um pouco mais do potencial da awk:
Vamos Imprimir somente usuários com UID igual a 1.000 ou maior.
awk -F: ‘$3 > 999 {print $0}’ /etc/passwd
Para isso usamos $1 $2 … para indicar o campo, onde $1 faz referencia ao campo 1, $2 campo 2 e assim por diante.
Temos também que informar o delimitador utilizado para separar os campos.
Neste exemplo vamos pegar somente os dados do campo 1 do arquivo de usuários passwd.
awk -F “:” ‘{print $1}’ /etc/passwd
Agora um exemplo usando pipe
cat /etc/passwd | awk -F “:” ‘{print $1}’
E para finalizar vamos a um exemplo somente com os campos 1 e 3 (Usuário e UID)
cat /etc/passwd | awk -F “:” ‘{print $1,$3}’
Para saber mais sobre a linguagem awk e as sintaxes, basta executar:
man awk
Conclusão : Utilização Fluxos Padrão Linux + Redirecionamentos e Pipes + Filtros
Aprender a utilizar os recursos de redirecionamento, pipes e filtros inclusos na linha de comando do Linux pode ser um pouco complicado e assustador, mas você está no caminho certo para dominar estes conceitos e habilidades depois deste conteúdo visto aqui no webmundi.com.
Nestas ultimas aulas deste módulo, você viu o básico sobre como funcionam os fluxos de dados Linux, redirecionamentos, pipes e filtros.
Assim, você poderá iniciar sua incursão no mundo do shell script, que faz uso frequente dos programas e fluxos padrão Linux mostrados neste curso.
Se você quiser se aprofundar nos comandos que foram introduzidos neste tutorial, você pode fazê-lo com man comando | less . Por exemplo:
man tee | less
man grep | less
man wc | less
man xargs | less
man awk | less
O conteúdo foi útil ?
Se a esta aula lhe ajudou de alguma forma em seu desenvolvimento profissional, não esqueça de se inscrever no canal ou indicar este vídeo aos seus amigos.
Se você puder e quiser você pode nos apoiar doando qualquer valor através de nosso pix.
Chave pix: [email protected]
Essas doações ajudam a manter o canal e nosso site e também na criação de novos conteúdos.
E por falar em criação de conteúdo, em breve, em nossas futuras vídeo aulas aqui do canal, aprenderemos a instalar o Oracle SQL Developer e também a desbloquear o banco de dados de exemplo da Oracle chamado HR.
Por isso não esqueça de se inscrever no canal e ativar as notificações para ser avisado sobre novos vídeos aqui do canal.
Materiais e leituras que recomendamos para você:
- Como instalar o Linux Mint 20 no Virtualbox 6.1 : Windows 10
- Como Instalar o SQL Developer Oracle no Linux
- Como Instalar o Servidor XAMPP no Linux – Localhost Apache MySQL PHP
- Instalação e configuração do Flutter no Windows 10
- Sobre as oportunidades em desenvolvimento Java
- Como Instalar Tema Escuro no Netbeans : Dark Mode
- Como atualizar o Windows 7 para Windows 10 Grátis
- Como aumentar sua produtividade no Windows com teclas de atalho
- Como se conectar a um computador remoto via Prompt de Comando
- Como Instalar o SQL Developer Oracle no Linux
- DBeaver : Alternativa ao SQL Server Management Studio Linux
- Como listar as maiores tabelas ou objetos Oracle
Loja WebMundi.com : Informática
-
Nova xiaomi tws fone de ouvido sem fio bluetooth 5.0 dual estéreo à prova d’ água esportes hd chamada earbud controle de toque fone de ouvido longo standby
-
Divoom Timebox Evo Bluetooth Portable Speaker with Clock Alarm Programmable LED Display for Pixel Art Creation Unique Gift
-
MIFA F10 Outdoor Wireless Bluetooth Stereo Portable Speaker Built-in mic Shock Resistance IPX6 Waterproof Speaker with Bass
-
Xcell XC-CM-19 Anvil aux 3,5mm Stereo Surround Music RGB Speakers Computer Sound Bar 2.0 PC Notebook Box
+ Ofertas Informática, Computadores e Tecnologia
Obrigado
Esperamos que esta publicação tenha lhe ajudado a aprofundar seus conhecimentos em linux.
Qual é sua experiência em Linux ?
Conte pra nós a sua experiência, adoraríamos saber.
Como entusiasta em desenvolvimento de software, queremos enriquecer sua experiência e conhecimento sobre este produto.
Se você gostou deste post, compartilhe com seus amigos ou nos acompanhe pelas redes sociais.
Tem alguma dúvida ou observação a fazer ?
Além disso, você pode nos ajudar a criar mais conteúdos como este. Como ?
Adquira produtos em nossa Loja Virtual, uma parceria do webmundi.com com as maiores plataformas de comércio eletrônico do Brasil.
Lembrando que comprando em nossa loja você apoia a criação de vídeos gratuitos aqui no site e em nosso canal do YouTube.
Prestigie também nossos apoiadores e anunciantes conhecendo seus produtos e serviços.
É simples e rápido e assim você ajuda a gente a crescer. 👍🏼
Obrigado e um grande abraço