|
From: | Fernando Mercês |
Subject: | Re: [shell-script] o trio de comandos find cat grep |
Date: | Mon, 16 Oct 2017 12:54:59 -0200 |
Caro Jorge,vou aproveitar a sua dúvida para dar uma dica para a lista:=====Sempre que vc pensar em usar um cmd cat dentro de um script, repense, pois deve ser desnecessário=====É muito frequente fazermos coisas do tipo cat ARQ | CMD. 99% das vezes o CMD aceita ARQ como parâmetro. P.ex.:Troque: cat ARQ | grep CADEIAPor: grep CADEIA ARQTroque: cat ARQ | cut PARMSPor: cut PARMS ARQOnde: PARMS = -d, -f, -s, ...Tb é comum, em cmds que só aceitam os dados de ARQ vindos pela entrada primária, vermos o tal do cat desnecessário. P.ex.:Troque: cat ARQ | tr X YPor: tr X Y < ARQVeja isso:$ wc -l ARQ4 ARQNormalmente vc só quer a qtd de linhas, não importa o nome. Então para ludibriar o cmd e ele não sabero o nome do arquivo vc faz:$ cat ARQ | wc -l4Aconteceu o que vc queria, mas vc pode fazer o mesmo de forma bem mais otimizada, fazendo:$ wc -l < ARQ4O shell passará somente os dados de ARQ para o wc contar e ele não saberá o nome do arquivo para listar.Jamais se esqueça que o pipe é tremendamente útil, mas ele cria um fork, gerando um subshell.Recomendo que, à luz do que expliquei, vc façam:$ grep -l cat /diretorio/dos/meus/scripts/*Isso irá gerar o nome de todos os seus scripts que usam o cmd cat. Analise um por um e vc verá que existe muita coisa que pode ser otimizada.Agora, voltando à dúvida do Jorge, que a essa altura já deve ter descartado o uso do cat. Jorge o seu find pode ser otimizado para o seguinte formato:find . type f -iname \*.jpg -o -iname \*.jpeg -o -iname \*.bmp -o -iname \*.png -o -iname \*.gifou, mais facilmente:find . -type f -iregex '.*\(jpg\|jpeg\|png\|gif\)'Novidade! Dia 08/11 abriremos as inscrições para um treinamentode Shell Script que será lecionado em 5 semanas no formato EADe que será ministrado por Julio Neves e Rubens Queiroz (dicas-l)Todos os detalhes em:Abcs,JulioDamos treinamento em sua empresa com certificadoe nota fiscal por um preço, no mínimo, 50% maisbarato que qualquer curso.Nosso time de instrutores in company é formado somente porautores de Best Sellers laureados sobre os temas. P. exemplo:Shell básico e Programação em Shell Julio Neves
Bacula Heitor Medrado
Zabbix Adail Host
Produção Gráfica e Videografismo CadunicoEm 16 de outubro de 2017 05:47, Jorge Barros de Abreu address@hidden [shell-script] <address@hidden.br > escreveu:Olá
Eu usava 'find' e gravava em um arquivo e depois usava um 'cat' para jogar no 'grep'.
Recentemente tive problemas com o trio de comandos acima.
O problema tinha a ver (provavelmente) com nomes de arquivos vindos de sistemas
operacionais diferentes e com acentos e com espaços.
Na internet tem diversas soluções para renomear arquivos.
Não achei nenhuma que resolvesse ***todos*** os problemas.
Alguns arquivos tive de sair na violencia mesmo.
Renomear um por um. :-))).
O que me chamou a atenção nessa coisa toda foi o comando abaixo
que compartilho agora:
find . '(' -type f -name '*.jpg' -o -name '*.jpeg' -o -name '*.JPEG' -o -name '*.JPG' -o -name '*.bmp' -o -name '*.png' -o -name '*.gif' ')'
O motivo de usar o comando acima foi que o grep estava abortando
em algum momento (não sei o motivo).
Foi o que resolveu meu problema.
Eliminei o cat e o grep.
A título de enriquecimento do diálogo faço a seguinte pergunta:
Existe alguma chave ou opção de linha de comando que melhore o comportamento
do grep e evitar que ele aborte inesperadamente e sem nenhuma mensagem de erro???
Obrigado.
Até.
--
Data Estelar 2458042,860336
http://sites.google.com/site/ficmatinf
Desejo-lhe Paz, Vida Longa e Prosperidade.
São Bem Vindas Mensagens no Formato texto UTF-8 com Acentos.
[Prev in Thread] Current Thread [Next in Thread]
- o trio de comandos find cat grep, Jorge Barros de Abreu, 2017/10/16
- Re: [shell-script] o trio de comandos find cat grep, Ernander (Nander), 2017/10/16
- Re: [shell-script] o trio de comandos find cat grep, Julio C. Neves, 2017/10/16
- Re: [shell-script] o trio de comandos find cat grep, Fernando Mercês <=
- Re: [shell-script] o trio de comandos find cat grep, Julio C. Neves, 2017/10/16
- Re: [shell-script] o trio de comandos find cat grep, Fernando Mercês, 2017/10/16
- Prev by Date: Re: [shell-script] Re: Comando AWK dentro do arquivo XML
- Next by Date: Re: [shell-script] o trio de comandos find cat grep
- Previous by thread: Re: [shell-script] o trio de comandos find cat grep
- Next by thread: Re: [shell-script] o trio de comandos find cat grep
- Index(es):