Conhecendo o | (pipe) , o more e o grep

No post do comando ls, vimos como listar o conteúdo de um diretório. Vimos a opção de listar de forma recursiva e também listar arquivos ocultos.

Com a opção -R, quando listamos o diretório /, as informações passam praticamente “voando” na tela. Seria mais ou menos como dar aquela olhadinha rápida em um livro… somente olhando as páginas sem realmente analisar o conteúdo!

Só prá relembrar:

# ls -R /

O comando more no Linux é o paginador, que pode ser usando com vários outros comandos que precisam de uma ‘pausa’ na tela.

No nosso caso, queremos paginar a saída do ls , que está muito grande e não conseguimos ver tudo! Mas, para usar o comando estou conseguindo ver tudo!

E, para fazer isso, preciso de um ajudante, o | (pipe)!!!

O pipe no shell, faz com que eu possa jogar um comando, para dentro de outro!!

Ihh.. enrolou tudo. Vamos explicar melhor: todo comando no Linux, irá mostrar um resultado que chamamos de “saída do comando”.

E essa saída do comando sempre irá aparecer na tela (monitor) que é a saída padrão.

O pipe, tem o poder de fazer com que a saída de um comando não vá para a tela, e sim para o outro comando;

O nosso ls recursivo passou tudo muito rápido! Então, vamos usar o comando more para paginar!

Vejam:

# ls /R | more

Agora sim, o ls vai esperar um <enter > a cada tela cheia! Fazendo uma comparação, (uiiiii!) o more aqui funcionaria como a opção -p do comando dir usado no DOS!

E usamos o | (pipe) para dizer que a saída do comando ls que vinha muito rápido, não deveria ir para a tela, e sim para o comando more!

Onde o comando more recebeu toda a informação do ls e na hora de mostrar, paginou!

Agora, vamos ver como localizar um determinado arquivo dentro de um diretório! Vamos listar o diretório /etc.

# ls /etc

Quando executamos o comando acima, ele irá mostrar a listagem do diretório /etc de uma forma muito rápida. Então, podemos combinar o ls com o more para mostrar a lista de forma pausada:

# ls /etc | more

Bem, isso já resolve o nosso problema de ver a listagem do /etc de forma pausada. Mas… e se quisermos localizar um determinado arquivo ou diretório?

Vejam que mesmo paginando, ainda temos muita coisa… Daí, pra facilitar, podemos usar o comando grep, que funciona como uma espécie de filtro no Linux!

Dentro do diretório /etc, vamos localizar arquivos que contenham a cadeia de caracteres ‘pa’; para isso, primeiro vamos ter que listar para depois filtrar:

# ls | grep pa
manpath.config
pam.conf
pam.d
passwd

Vejam que o resultado do comando acima, trouxe não somente o que começa com pa como também tudo que tem pa no nome! Isso é o básico de uma filtragem!

Agora, melhorando nossa pesquisa e incrementando mais o filtro… e se quisessemos ver tudo o que começa com pa?

Exemplo:

# ls | grep ^pa
pam.conf
pam.d
passwd

Vejam que apenas acrescentamos a opção ^ que significa começo de linha, ou seja, tudo que começar com pa!

Ainda falando o grep, vamos fazer ao contrário… vamos listar tudo “que não comece” com pa:

# ls /etc/ | grep -v ^pa

Onde a opção -v aqui é inverso, ou seja, mostre tudo exceto o que comece com pa!

Vejam que usamos o pipe para unir comandos, e o legal de tudo isso, é que podemos usar o pipe mais de uma vez em uma mesma linha de comando!

Exemplo:

# ls /etc/ | grep -v ^m | more

No exemplo acima, jogamos um comando dentro do outro!

Primeiro, listamos o que tem dentro do /etc e jogamos para o grep, que irá tirar tudo que começa com m, e jogar para o more, que por sua vez, irá paginar o que sobrou do filtro!

Bem é isso aí… por enquanto vamos ficando por aqui e até o próximo post!

1 Response to “Conhecendo o | (pipe) , o more e o grep”


  1. 1 Achilles Christiano 24/06/2016 às 9:32 AM

    Apenas pra praticar a gente segue a risca um determinado comando e via de regra vem um enfadonho: ls /R | more, escrevi e me volta o chato do:
    ls: não é possível acessar /R: Arquivo ou diretório não encontrado


Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s




Follow Nix on WordPress.com
julho 2008
S T Q Q S S D
« jun   ago »
 123456
78910111213
14151617181920
21222324252627
28293031  

Flickr Photos

Fast-flying Falcon

Mais fotos

%d blogueiros gostam disto: