O comando grep
Srs.,
Publiquei em meu site um artigo sobre o comando
grep. Não vou postar ele de novo aqui, mas quem quiser pode acessar em:
Att,
Anthony Collucci
Outras dicas deste autor
Picocom - Gravando dados enviados via USB pelo Arduino
TCP/IP para sistemas embarcados
Duas dicas de SSH
Acelerando o apt-get ou similares
Roteiro de instalação e configuração de um Servidor Debian
Leitura recomendada
Verificação constante de disponibilidade de serviços
Como aumentar ou reduzir a velocidade de um vídeo via linha de comando
Encontrar IP duplicado na rede
Aliases no bash e como "escapar" um comando com alias
Dividindo arquivos grandes em partes menores com o comando split
Comentários
Faltou falar sobre:
- fgrep e egrep (fast grep e extended grep)
- registradores internos
- referência retroativa
- metacaracteres
- expressões regulares
Tudo isso é suportado pelo grep!
valeu pelo toque vou aproveitar e acrescentar esses topicos.
Mensagem
valeu pelo toque vou aproveitar e acrescentar esses topicos.
deveria se excluido pessoas que colocam suas dica ou artigos em seu proprio blog ou site, pra se promover pelo vivaolinux...!! e o pior! num paga o dominio fica fora do ar! esse link naum presta mais!!!
Mensagem
deveria se excluido pessoas que colocam suas dica ou artigos em seu proprio blog ou site, pra se promover pelo vivaolinux...!! e o pior! num paga o dominio fica fora do ar! esse link naum presta mais!!!
ChapLinux??
Essa eu vou ter que assinar...
Para me promover???
Trabalho a 10 anos na area de TI, da uma pesquisada no google pelo meu nome e me responde se eu precisava disso??? O link esta inativo pois o projeto acabou, porque eu não aguentava mais dar suporte a gente como voce, que nao sabe nada, e nao tem nem um comentario para contribuir.
E o tipo de usuario retardado, que entra em forum para fazer flames... E ainda por cima quase nunca sabe sobre o assunto que esta tratando.
Voce conheceu o portal administrando redes?
no auge ele recebia mais de 1000 visitas diarias, e ainda hoje recebo e-mails de pessoas que pedem as materias antigas dele. Poderia ser seu caso se voce tivesse nivel, para me solicitar alguma coisa mas como voce não tem, so digo uma coisa procura.
A isso eu escrevi depois, o cara tem 5 anos de vivaolinux, e faz 5 posts, e vem me criticar!!! PQP
Atenciosamente,
Anthony Collucci (procura no google blz ;))
Mensagem
ChapLinux??
Essa eu vou ter que assinar...
Para me promover???
Trabalho a 10 anos na area de TI, da uma pesquisada no google pelo meu nome e me responde se eu precisava disso??? O link esta inativo pois o projeto acabou, porque eu não aguentava mais dar suporte a gente como voce, que nao sabe nada, e nao tem nem um comentario para contribuir.
E o tipo de usuario retardado, que entra em forum para fazer flames... E ainda por cima quase nunca sabe sobre o assunto que esta tratando.
Voce conheceu o portal administrando redes?
no auge ele recebia mais de 1000 visitas diarias, e ainda hoje recebo e-mails de pessoas que pedem as materias antigas dele. Poderia ser seu caso se voce tivesse nivel, para me solicitar alguma coisa mas como voce não tem, so digo uma coisa procura.
A isso eu escrevi depois, o cara tem 5 anos de vivaolinux, e faz 5 posts, e vem me criticar!!! PQP
Atenciosamente,
Anthony Collucci (procura no google blz ;))
Juntamente com Anthony eu era um mantenedor do site administrandoredes.com e garanto que "promover" o site com certeza não foi a intenção de Anthony ao postar esta dica. A ideia seria de como já havia o artigo publicado em um local é contraprodutivo postá-lo novamente em outro somente para que pessoas como chaplinux possam utilizá-lo sem clicar em um link.
É realmente hilário o tipo de comentário que pessoas que criam posts no site somente para ganhar alguns pontinhos a mais conseguem fazer. Com a utilidade apenas de começar flames ou ofender pessoas que como ele fazem parte da comunidade linux seria melhor que este tipo de comentário não existisse.
Atenciosamente
André Luis da Silva Moreira (não adianta procurar no google)
Mensagem
Juntamente com Anthony eu era um mantenedor do site administrandoredes.com e garanto que "promover" o site com certeza não foi a intenção de Anthony ao postar esta dica. A ideia seria de como já havia o artigo publicado em um local é contraprodutivo postá-lo novamente em outro somente para que pessoas como chaplinux possam utilizá-lo sem clicar em um link.
É realmente hilário o tipo de comentário que pessoas que criam posts no site somente para ganhar alguns pontinhos a mais conseguem fazer. Com a utilidade apenas de começar flames ou ofender pessoas que como ele fazem parte da comunidade linux seria melhor que este tipo de comentário não existisse.
Atenciosamente
André Luis da Silva Moreira (não adianta procurar no google)
Eu também achei que era melhor que fosse aqui no viva o linux, mas muito obrigado mesmo assim.
Pelo menos, se fosse aqui, acho que ainda estaria pegando.
Mensagem
Eu também achei que era melhor que fosse aqui no viva o linux, mas muito obrigado mesmo assim.
Pelo menos, se fosse aqui, acho que ainda estaria pegando.
Opa eowyn k Tonks Estou postando abaixo a materia ok?
O comando GREP
O comando grep, procura em um arquivo ou na entrada padrão linhas que coincidam com a string listada como argumento.
Não entendeu?
Ex.:
ls | grep log - a entrada do comando grep e a saída do comando ls
Lista todos os arquivos do diretorio mas só exibe aqueles que contem em alguma parte do nome do arquivo a palavra log.
grep /var/log/messages 192.168.0.1 - a entrada do comando grep é o arquivo messages
Lista todas as linhas que fazem referencia no arquivo messages ao ip 192.168.0.1
exemplo de saida comum do comando ls.
[root@administrandoredes log]# ls
anaconda.log boot.log.4 cron.4 lastlog maillog.4 messages.4 rpmpkgs secure spooler.1 teste.txt
anaconda.syslog btmp cups mail mailman mysqld.log rpmpkgs.1 secure.1 spooler.2 wtmp
boot.log cron dmesg maillog messages openvpn.log rpmpkgs.2 secure.2 spooler.3 wtmp.1
boot.log.1 cron.1 faillog maillog.1 messages.1 openvpn-status.log rpmpkgs.3 secure.3 spooler.4 yum.log
boot.log.2 cron.2 httpd maillog.2 messages.2 ppp rpmpkgs.4 secure.4 squid
boot.log.3 cron.3 iptraf maillog.3 messages.3 prelink samba spooler tallylog
[root@administrandoredes log]#
exemplo de saida do comando ls, com filtro pelo grep
[root@administrandoredes log]# ls | grep me
dmesg
messages
messages.1
messages.2
messages.3
messages.4
[root@administrandoredes log]#
Argumentos
-m Numero maximo de resultados
[root@administrandoredes log]# grep 192.168.0.1 -m 10 messages
Mar 2 04:35:01 cristal snmpd[1909]: Connection from UDP: [192.168.0.1]:36654
Mar 2 04:35:01 cristal snmpd[1909]: Received SNMP packet(s) from UDP: [192.168.0.1]:36654
Mar 2 04:35:01 cristal snmpd[1909]: Connection from UDP: [192.168.0.1]:36654
Mar 2 04:40:01 cristal snmpd[1909]: Connection from UDP: [192.168.0.1]:36654
Mar 2 04:40:01 cristal snmpd[1909]: Connection from UDP: [192.168.0.1]:36654
Mar 2 04:45:02 cristal snmpd[1909]: Connection from UDP: [192.168.0.1]:36654
Mar 2 04:45:02 cristal snmpd[1909]: Connection from UDP: [192.168.0.1]:36654
Mar 2 04:50:02 cristal snmpd[1909]: Connection from UDP: [192.168.0.1]:36654
Mar 2 04:50:02 cristal snmpd[1909]: Connection from UDP: [192.168.0.1]:36654
Mar 2 04:51:03 cristal kernel: FORWARD nao aceito: IN=eth1 OUT=eth0 SRC=192.168.0.100 DST=74.53.198.82 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=14090 DF PROTO=TCP SPT=59594 DPT=135 WINDOW=65535 RES=0x00 SYN URGP=0
[root@adminstrandoredes log]#
O resultado ficou limitado a 10 registros.
-i Ignora maiusculas e minusculas
[root@adminstrandoredes log]# ls | grep -i MESSAGES
messages
messages.1
messages.2
messages.3
messages.4
[root@adminstrandoredes log]#
O Filtro com a palavra MESSAGES não deveria retornar resultado algum pois o comando e case sensitive, com o argumento -i ignora maisculas e minusculas.
-v Alterna a seleção
[root@administrandoredes log]# ls | grep -v -m 10 messages
anaconda.log
anaconda.syslog
boot.log
boot.log.1
boot.log.2
boot.log.3
boot.log.4
btmp
cron
cron.1
[root@administrandoredes log]#
Com o comando -v ele lista todos os arquivos exceto o argumento, note que para diminuir o resultado eu utilizei o argumento -m 10 para limitar para 10 entradas o total de resultados exibidos
-n Exibe o numero do registro, da linha
[root@administrandoredes log]# ls | grep 192.168.0.100 -n -m 10 messages
22:Mar 2 04:51:03 cristal kernel: FORWARD nao aceito: IN=eth1 OUT=eth0 SRC=192.168.0.100 DST=74.53.198.82 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=14090 DF PROTO=TCP SPT=59594 DPT=135 WINDOW=65535 RES=0x00 SYN URGP=0
23:Mar 2 04:51:06 cristal kernel: FORWARD nao aceito: IN=eth1 OUT=eth0 SRC=192.168.0.100 DST=74.53.198.82 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=14094 DF PROTO=TCP SPT=59594 DPT=135 WINDOW=65535 RES=0x00 SYN URGP=0
24:Mar 2 04:51:12 cristal kernel: FORWARD nao aceito: IN=eth1 OUT=eth0 SRC=192.168.0.100 DST=74.53.198.82 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=14101 DF PROTO=TCP SPT=59594 DPT=135 WINDOW=65535 RES=0x00 SYN URGP=0
25:Mar 2 04:51:24 cristal kernel: FORWARD nao aceito: IN=eth1 OUT=eth0 SRC=192.168.0.100 DST=74.53.198.82 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=14302 DF PROTO=TCP SPT=59596 DPT=135 WINDOW=65535 RES=0x00 SYN URGP=0
26:Mar 2 04:51:27 cristal kernel: FORWARD nao aceito: IN=eth1 OUT=eth0 SRC=192.168.0.100 DST=74.53.198.82 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=14306 DF PROTO=TCP SPT=59596 DPT=135 WINDOW=65535 RES=0x00 SYN URGP=0
27:Mar 2 04:51:33 cristal kernel: FORWARD nao aceito: IN=eth1 OUT=eth0 SRC=192.168.0.100 DST=74.53.198.82 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=14323 DF PROTO=TCP SPT=59596 DPT=135 WINDOW=65535 RES=0x00 SYN URGP=0
28:Mar 2 04:51:45 cristal kernel: FORWARD nao aceito: IN=eth1 OUT=eth0 SRC=192.168.0.100 DST=74.53.198.82 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=14359 DF PROTO=TCP SPT=59600 DPT=135 WINDOW=65535 RES=0x00 SYN URGP=0
29:Mar 2 04:51:48 cristal kernel: FORWARD nao aceito: IN=eth1 OUT=eth0 SRC=192.168.0.100 DST=74.53.198.82 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=14364 DF PROTO=TCP SPT=59600 DPT=135 WINDOW=65535 RES=0x00 SYN URGP=0
30:Mar 2 04:51:54 cristal kernel: FORWARD nao aceito: IN=eth1 OUT=eth0 SRC=192.168.0.100 DST=74.53.198.82 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=14375 DF PROTO=TCP SPT=59600 DPT=135 WINDOW=65535 RES=0x00 SYN URGP=0
69:Mar 2 05:11:17 cristal kernel: FORWARD nao aceito: IN=eth1 OUT=eth0 SRC=192.168.0.100 DST=74.53.198.82 LEN=78 TOS=0x00 PREC=0x00 TTL=127 ID=30834 PROTO=UDP SPT=137 DPT=137 LEN=58
[root@administrandoredes log]#
Com o argumento -n exibe o numero da linha onde foi encontrado o registro
-q Suprime o resultado
[root@administrandoredes log]# ls | grep 192.168.0.100 -n -m 10 messages -q
[root@administrandoredes log]#
O argumento -q suprime todos os resultados, nao sei realmente a utilidade dele!!!! :s
-c Exibe a contagem de resultados
[root@administrandoredes log]# ls | grep 192.168.0.100 -n messages -c
285
[root@administrandoredes log]#
Mostra quantas vezes o resultado foi encontrado.
Bom, com esse artigo eu quis mostrar como usar o comando GREP, alem disso queria atentar ao fato de como comandos simples quando bem usados podem eliminar a necessidade de utilizar softwares de terceiros.
att,
Anthony Collucci
amc.collucci@gmail.com
Estou colocando a materia em nome das pessoas educadas que me pediram isso e nao para flames idiotas igual ao usuario chaplinux.
Mensagem
Opa eowyn k Tonks Estou postando abaixo a materia ok?
O comando GREP
O comando grep, procura em um arquivo ou na entrada padrão linhas que coincidam com a string listada como argumento.
Não entendeu?
Ex.:
ls | grep log - a entrada do comando grep e a saída do comando ls
Lista todos os arquivos do diretorio mas só exibe aqueles que contem em alguma parte do nome do arquivo a palavra log.
grep /var/log/messages 192.168.0.1 - a entrada do comando grep é o arquivo messages
Lista todas as linhas que fazem referencia no arquivo messages ao ip 192.168.0.1
exemplo de saida comum do comando ls.
[root@administrandoredes log]# ls
anaconda.log boot.log.4 cron.4 lastlog maillog.4 messages.4 rpmpkgs secure spooler.1 teste.txt
anaconda.syslog btmp cups mail mailman mysqld.log rpmpkgs.1 secure.1 spooler.2 wtmp
boot.log cron dmesg maillog messages openvpn.log rpmpkgs.2 secure.2 spooler.3 wtmp.1
boot.log.1 cron.1 faillog maillog.1 messages.1 openvpn-status.log rpmpkgs.3 secure.3 spooler.4 yum.log
boot.log.2 cron.2 httpd maillog.2 messages.2 ppp rpmpkgs.4 secure.4 squid
boot.log.3 cron.3 iptraf maillog.3 messages.3 prelink samba spooler tallylog
[root@administrandoredes log]#
exemplo de saida do comando ls, com filtro pelo grep
[root@administrandoredes log]# ls | grep me
dmesg
messages
messages.1
messages.2
messages.3
messages.4
[root@administrandoredes log]#
Argumentos
-m Numero maximo de resultados
[root@administrandoredes log]# grep 192.168.0.1 -m 10 messages
Mar 2 04:35:01 cristal snmpd[1909]: Connection from UDP: [192.168.0.1]:36654
Mar 2 04:35:01 cristal snmpd[1909]: Received SNMP packet(s) from UDP: [192.168.0.1]:36654
Mar 2 04:35:01 cristal snmpd[1909]: Connection from UDP: [192.168.0.1]:36654
Mar 2 04:40:01 cristal snmpd[1909]: Connection from UDP: [192.168.0.1]:36654
Mar 2 04:40:01 cristal snmpd[1909]: Connection from UDP: [192.168.0.1]:36654
Mar 2 04:45:02 cristal snmpd[1909]: Connection from UDP: [192.168.0.1]:36654
Mar 2 04:45:02 cristal snmpd[1909]: Connection from UDP: [192.168.0.1]:36654
Mar 2 04:50:02 cristal snmpd[1909]: Connection from UDP: [192.168.0.1]:36654
Mar 2 04:50:02 cristal snmpd[1909]: Connection from UDP: [192.168.0.1]:36654
Mar 2 04:51:03 cristal kernel: FORWARD nao aceito: IN=eth1 OUT=eth0 SRC=192.168.0.100 DST=74.53.198.82 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=14090 DF PROTO=TCP SPT=59594 DPT=135 WINDOW=65535 RES=0x00 SYN URGP=0
[root@adminstrandoredes log]#
O resultado ficou limitado a 10 registros.
-i Ignora maiusculas e minusculas
[root@adminstrandoredes log]# ls | grep -i MESSAGES
messages
messages.1
messages.2
messages.3
messages.4
[root@adminstrandoredes log]#
O Filtro com a palavra MESSAGES não deveria retornar resultado algum pois o comando e case sensitive, com o argumento -i ignora maisculas e minusculas.
-v Alterna a seleção
[root@administrandoredes log]# ls | grep -v -m 10 messages
anaconda.log
anaconda.syslog
boot.log
boot.log.1
boot.log.2
boot.log.3
boot.log.4
btmp
cron
cron.1
[root@administrandoredes log]#
Com o comando -v ele lista todos os arquivos exceto o argumento, note que para diminuir o resultado eu utilizei o argumento -m 10 para limitar para 10 entradas o total de resultados exibidos
-n Exibe o numero do registro, da linha
[root@administrandoredes log]# ls | grep 192.168.0.100 -n -m 10 messages
22:Mar 2 04:51:03 cristal kernel: FORWARD nao aceito: IN=eth1 OUT=eth0 SRC=192.168.0.100 DST=74.53.198.82 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=14090 DF PROTO=TCP SPT=59594 DPT=135 WINDOW=65535 RES=0x00 SYN URGP=0
23:Mar 2 04:51:06 cristal kernel: FORWARD nao aceito: IN=eth1 OUT=eth0 SRC=192.168.0.100 DST=74.53.198.82 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=14094 DF PROTO=TCP SPT=59594 DPT=135 WINDOW=65535 RES=0x00 SYN URGP=0
24:Mar 2 04:51:12 cristal kernel: FORWARD nao aceito: IN=eth1 OUT=eth0 SRC=192.168.0.100 DST=74.53.198.82 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=14101 DF PROTO=TCP SPT=59594 DPT=135 WINDOW=65535 RES=0x00 SYN URGP=0
25:Mar 2 04:51:24 cristal kernel: FORWARD nao aceito: IN=eth1 OUT=eth0 SRC=192.168.0.100 DST=74.53.198.82 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=14302 DF PROTO=TCP SPT=59596 DPT=135 WINDOW=65535 RES=0x00 SYN URGP=0
26:Mar 2 04:51:27 cristal kernel: FORWARD nao aceito: IN=eth1 OUT=eth0 SRC=192.168.0.100 DST=74.53.198.82 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=14306 DF PROTO=TCP SPT=59596 DPT=135 WINDOW=65535 RES=0x00 SYN URGP=0
27:Mar 2 04:51:33 cristal kernel: FORWARD nao aceito: IN=eth1 OUT=eth0 SRC=192.168.0.100 DST=74.53.198.82 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=14323 DF PROTO=TCP SPT=59596 DPT=135 WINDOW=65535 RES=0x00 SYN URGP=0
28:Mar 2 04:51:45 cristal kernel: FORWARD nao aceito: IN=eth1 OUT=eth0 SRC=192.168.0.100 DST=74.53.198.82 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=14359 DF PROTO=TCP SPT=59600 DPT=135 WINDOW=65535 RES=0x00 SYN URGP=0
29:Mar 2 04:51:48 cristal kernel: FORWARD nao aceito: IN=eth1 OUT=eth0 SRC=192.168.0.100 DST=74.53.198.82 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=14364 DF PROTO=TCP SPT=59600 DPT=135 WINDOW=65535 RES=0x00 SYN URGP=0
30:Mar 2 04:51:54 cristal kernel: FORWARD nao aceito: IN=eth1 OUT=eth0 SRC=192.168.0.100 DST=74.53.198.82 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=14375 DF PROTO=TCP SPT=59600 DPT=135 WINDOW=65535 RES=0x00 SYN URGP=0
69:Mar 2 05:11:17 cristal kernel: FORWARD nao aceito: IN=eth1 OUT=eth0 SRC=192.168.0.100 DST=74.53.198.82 LEN=78 TOS=0x00 PREC=0x00 TTL=127 ID=30834 PROTO=UDP SPT=137 DPT=137 LEN=58
[root@administrandoredes log]#
Com o argumento -n exibe o numero da linha onde foi encontrado o registro
-q Suprime o resultado
[root@administrandoredes log]# ls | grep 192.168.0.100 -n -m 10 messages -q
[root@administrandoredes log]#
O argumento -q suprime todos os resultados, nao sei realmente a utilidade dele!!!! :s
-c Exibe a contagem de resultados
[root@administrandoredes log]# ls | grep 192.168.0.100 -n messages -c
285
[root@administrandoredes log]#
Mostra quantas vezes o resultado foi encontrado.
Bom, com esse artigo eu quis mostrar como usar o comando GREP, alem disso queria atentar ao fato de como comandos simples quando bem usados podem eliminar a necessidade de utilizar softwares de terceiros.
att,
Anthony Collucci
amc.collucci@gmail.com
Estou colocando a materia em nome das pessoas educadas que me pediram isso e nao para flames idiotas igual ao usuario chaplinux.
Poxa este comando é bem utilizado e o material do seu site é bacana.
Mensagem
Poxa este comando é bem utilizado e o material do seu site é bacana.
Contribuir com comentário
Enviar