Comando Pipe, Grep e Sort em Linux/Unix com exemplos
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. Resumindo, a saída de cada processo diretamente como entrada para o próximo, como um pipeline. O símbolo '|' denota um tubo.
Pipes ajudam você a combinar dois ou mais comandos ao mesmo tempo e executá-los consecutivamente. Você pode usar comandos poderosos que podem executar tarefas complexas em um instante.
Vamos entender isso com um exemplo.
Quando você usa o comando 'cat' para visualizar um arquivo que abrange várias páginas, o prompt salta rapidamente para a última página do arquivo e você não vê o conteúdo no meio.
Para evitar isso, você pode canalizar a saída do comando 'cat' para 'less', que mostrará apenas um comprimento de rolagem de conteúdo por vez.
cat filename | less
Uma ilustração deixaria isso claro.
Clique aqui se o vídeo não estiver acessível
Comandos 'pg' e 'mais'
Em vez de 'menos', você também pode usar.
cat Filename | pg
or
cat Filename | more
E você pode visualizar o arquivo em pedaços digeríveis e rolar para baixo simplesmente pressionando a tecla Enter.
O comando 'grep'
Suponha que você queira pesquisar uma informação específica, o código postal, em um arquivo de texto.
Você mesmo pode folhear manualmente o conteúdo para rastrear as informações. Uma opção melhor é usar o comando grep. Ele irá digitalizar o documento em busca das informações desejadas e apresentar o resultado no formato desejado.
Sintaxe:
grep search_string
Vamos ver isso em ação –
Aqui, grep O comando 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 | Combine ambas as letras (maiúsculas e minúsculas) |
-l | Mostra apenas o nome do arquivo com a string |
Vamos tentar a primeira opção '-eu' no mesmo arquivo usado acima –
Usar a opção 'i' grep filtrou a string 'a' (sem distinção entre maiúsculas e minúsculas) de todas as linhas.
O comando 'classificar'
Este comando ajuda em classificar o conteúdo de um arquivo em ordem alfabética.
A sintaxe deste comando é:
sort Filename
Considere o conteúdo de um arquivo.
Usando o comando de classificação
Tem extensões a este comando também, e eles estão listados abaixo.
Opção | função |
---|---|
-r | Revclassificação |
-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 tem muitos comandos de filtro como awk, grep, sed, Spell e wc. Um filtro recebe a entrada de um comando, faz algum processamento e fornece a saída.
Quando você canaliza dois comandos, a saída “filtrada” do primeiro comando é fornecida ao próximo.
Vamos entender isso com a ajuda de um exemplo.
Temos o seguinte arquivo 'amostra'
Queremos destacar apenas as linhas que não contenham o caractere 'a', mas o resultado deverá estar na ordem inversa.
Para isso, a seguinte sintaxe pode ser usada.
cat sample | grep -v a | sort - r
Vejamos o resultado.
Resumo:
- Tubos '|' envie a saída de um comando como entrada de outro comando.
- O Filtro recebe a entrada de um comando, faz algum processamento e fornece a saída.
- O comando grep pode ser usado para localizar strings e valores em um documento de texto
- A tubulação através do grep deve ser um dos usos mais comuns
- O comando 'sort' classifica o conteúdo de um arquivo em ordem alfabética
- Os comandos less ,pg e more são usados para dividir um arquivo longo em bits legíveis