codercss 14 Denunciar post Postado Agosto 6, 2016 Olá a todos,Estou a construir um script para procurar no disco quais arquivos com extensão .sh existem com palavra no nome "mirror...qualquer coisa.."Executei assim: tree -f /path | grep ".sh" | grep "mirror" Estas instruções estão a trazer tudo que tem extensão .sh e com nome mirror, mesmo não tendo extensão .sh.Pensei que o pipe fizesse isto:Executa o tree, pega no resultado do comando tree e faz com que a segunda instrução varre esse resultado, e por fim faz com que a terceira instrução varre o resultado da segunda instrução.Duas questões:1-O que está de errado nas instruções, uma vez que o resultado não é o mesmo do meu algoritmo?2-Que dicas dão para executar este tipo de procuras?Nota: Não quero comando prontos, procura instruções e dicas para estudar. Mas obrigado na mesma!Pensei no programa "find", acham que seria melhor?Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Agosto 6, 2016 grep e egrep usam Expressões Regulares. Logo ".sh" e "\.sh" são coisas diferentes. "." significa qualquer caractere. Logo, seu grep vai retornar ".sh", "ash", "bsh", "1sh" e assim por diante. Use "\.sh" para forçar o .sh Mais detalhes neste meu artigo sobre grep: http://rberaldo.com.br/grep-como-buscar-em-arquivos-linux/ Também é possível usar o comando find, que será mais eficiente que listar tudo e depois filtrar: http://rberaldo.com.br/find-como-encontrar-arquivos-linux/ Compartilhar este post Link para o post Compartilhar em outros sites