Estou usando os comandos cygwin 'find' e 'grep' para localizar arquivos com base em algum padrão. Estou fazendo isso:
find . -iname '*.zip' -print -exec unzip -l {} \; 2> error.txt |grep -i vbs
Funciona bem e tenho um nome de arquivo com 'vbs' no nome do arquivo. MAS agora preciso fazer o mesmo, mas preciso encontrar o nome do arquivo com base no conteúdo dele, por exemplo, 'vbs' não faz parte do nome do arquivo, mas parte do conteúdo do arquivo. Como poderia ser modificado? Talvez algo como:
encontrar . -iname '*.zip' -print -exec descompactar -l {} \; 2> erro.txt | xargs ??? Alguém poderia aconselhar? Obrigado
Responder1
Como você irá acessar o conteúdo do arquivo, -l
listar o arquivo zip não será suficiente. você precisa realmente descompactá-lo. então:
temp=`mktemp -d`
find . -iname '*.zip' -print -exec unzip -d $temp {} \; 2> error.txt
grep -ir vbs $temp