De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Rodrigo Bernardo Pimentel
Data de Publicação: 06 de Setembro de 2000
As ferramentas de Unix surgiram com o conceito de "seja simples, faça
bem o que tem a fazer, saiba conversar com outras aplicações". Bem, parte
dessa última premissa é realizada com o uso de "pipes". "pipes"
(utilizados com o caracter |
) conectam a saída de uma programa à entrada
de outro. Ou seja, funcionam como um "tubo" ou "cano" mesmo.
Por exemplo: o comando cat
joga na saída padrão o conteúdo de um
arquivo. O comando cut
mostra só uma parte especificada do texto que lhe é
passado como entrada padrão. Assim, para conseguirmos uma lista de usuários
do sistema, podemos fazer
[rbp@muppets ~]$ cat /etc/passwd | cut -d : -f 1=
O comando cat /etc/passwd
jogaria na tela todas as linhas do
arquivo /etc/passwd
.
O comando cut -d : -f 1
divide cada linha da entrada utilizando o
:
(dois pontos) como separador e pega o primeiro campo (com -d :
e
-f 1
respectivamente). Assim, em uma linha do /etc/passwd
normal, os campos
seriam
rbp:x:500:500:Rodrigo Bernardo Pimentel:/home/rbp:/bin/bash
1 2 3 4 5 6 7
Ou seja, o primeiro campo é o login.
Assim, o pipe usa a saída do primeiro comando para fornecer uma
entrada para o segundo, e o resultado é o campo de login de cada linha do
/etc/passwd
.
Outro exemplo, envolvendo mais pipes (ou seja, você pode usar mais de um pipe de uma vez):
[rbp@muppets ~]$ w | grep '^rbp ' | wc -l =
7
[rbp@muppets ~]$ =
O comando w
lista os usuários conectados na máquina. O comando
grep '^rbp '
pega essa lista e mostra só as que começem com "rbp
" (para
não pegarmos substrings como rbpsdgf
). Finalmente, o comando wc -l
conta
essas linhas. Assim, sei que, no momento, o usuário rbp tem 7 shells abertos
na máquina (dia fraco... ;) .
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários