Comando Pipe, Grep e Sort em Linux/Unix com exemplos
โก Resumo Inteligente
Os comandos pipe, grep e sort no Linux e Unix encadeiam e filtram texto: um pipe envia a saรญda de um comando para o prรณximo, o grep busca padrรตes e o sort organiza as linhas, enquanto os filtros transformam os dados entre eles.

Pipes, grep e sort estรฃo entre as ferramentas mais usadas no Linux linha de comando, pois permitem conectar pequenos comandos em um fluxo de trabalho poderoso. Esta pรกgina explica cada um deles com exemplos prรกticos e, em seguida, mostra como os filtros os interligam.
O que รฉ um tubo no Linux?
O pipe รฉ um comando no Linux que permite usar dois ou mais comandos de forma que a saรญda de um comando sirva como entrada para o prรณximo. Em resumo, a saรญda de cada processo alimenta diretamente como entrada o prรณximo, como um pipeline. O sรญmbolo '|' representa um pipe.
Os pipes permitem combinar dois ou mais comandos simultaneamente e executรก-los consecutivamente. Vocรช pode usar comandos poderosos que realizam tarefas complexas em um instante.
Vamos entender isso com um exemplo.
Ao usar o comando 'cat' para visualizar um arquivo que abrange vรกrias pรกginas, o prompt pula rapidamente para a รบltima pรกgina do arquivo, e vocรช nรฃo vรช o conteรบdo do meio.
Para evitar isso, vocรช pode redirecionar a saรญda do comando 'cat' para o comando 'less', que mostra apenas o conteรบdo correspondente a um comprimento de rolagem por vez.
cat filename | less
Uma ilustraรงรฃo tornaria isso mais claro. O diagrama abaixo mostra como um pipe passa a saรญda de um comando para o prรณximo.
Comandos 'pg' e 'mais'
Em vez de 'less', vocรช tambรฉm pode usar o comando 'pg' ou 'more':
cat Filename | pg
or
cat Filename | more
Vocรช poderรก entรฃo visualizar o arquivo em partes menores e rolar a pรกgina para baixo pressionando a tecla Enter. A captura de tela abaixo mostra um arquivo paginado com o comando "more".
O comando 'grep'
Suponha que vocรช queira procurar informaรงรตes especรญficas, como um cรณdigo postal, em um arquivo de texto.
Vocรช pode folhear o conteรบdo manualmente para trace as informaรงรตes. Uma opรงรฃo melhor รฉ usar o grep O comando analisa o documento em busca das informaรงรตes desejadas e apresenta o resultado no formato que vocรช quer.
Sintaxe:
grep search_string
Vejamos como funciona. A captura de tela abaixo mostra o resultado da pesquisa.
Neste exemplo, o comando grep pesquisou o arquivo 'sample' pelas strings 'Apple' e 'Eat'. As seguintes opรงรตes podem ser usadas com este comando.
| Opรงรฃo | funรงรฃo |
|---|---|
| -v | Mostra todas as linhas que nรฃo correspondem ร string pesquisada |
| -c | Exibe apenas a contagem de linhas correspondentes |
| -n | Mostra a linha correspondente e seu nรบmero |
| -i | Corresponde a letras maiรบsculas e minรบsculas. |
| -l | Mostra apenas o nome do arquivo com a string |
Vamos tentar a opรงรฃo '-i' no mesmo arquivo usado acima. A captura de tela abaixo mostra o resultado sem distinรงรฃo entre maiรบsculas e minรบsculas.
Usando a opรงรฃo '-i', o grep filtrou a string 'a' (sem distinรงรฃo entre maiรบsculas e minรบsculas) de todas as linhas.
O comando 'classificar'
Este comando ajuda a organizar o conteรบdo de um arquivo em ordem alfabรฉtica.
A sintaxe deste comando รฉ:
sort Filename
Considere o conteรบdo de um arquivo, mostrado com o comando `cat` abaixo.
Executar o comando de classificaรงรฃo organiza essas linhas em ordem alfabรฉtica, como mostrado abaixo.
Existem tambรฉm extensรตes para este comando, que estรฃo listadas abaixo.
| Opรงรฃo | funรงรฃo |
|---|---|
| -r | Reverseclassificaรงรฃo s |
| -n | Classifica numericamente |
| -f | Classificaรงรฃo sem distinรงรฃo entre maiรบsculas e minรบsculas |
O exemplo abaixo mostra a classificaรงรฃo reversa do conteรบdo do arquivo 'abc'.
O que รฉ um filtro?
O Linux possui muitos comandos de filtro, como awk, grep, sed, spell e wc. Um filtro recebe a entrada de um comando, realiza algum processamento e fornece a saรญda.
Ao encadear dois comandos, a saรญda "filtrada" do primeiro comando รฉ passada para o prรณximo. O diagrama abaixo ilustra como um filtro se encaixa em um pipeline.
Vamos entender isso com a ajuda de um exemplo. Temos o seguinte arquivo 'sample', mostrado com o comando cat abaixo.
Desejamos destacar apenas as linhas que nรฃo contรชm o caractere 'a', mas o resultado deve estar em ordem inversa. Para isso, pode-se usar a seguinte sintaxe:
cat sample | grep -v a | sort -r
Vejamos o resultado, mostrado na captura de tela abaixo.







.png)
.png)

