Estoy usando los comandos cygwin 'buscar' y 'grep' para localizar archivos según algún patrón. Yo estoy haciendo esto:
find . -iname '*.zip' -print -exec unzip -l {} \; 2> error.txt |grep -i vbs
Funciona bien y tengo un nombre de archivo con 'vbs' en el nombre del archivo. PERO ahora necesito hacer algo similar, pero necesito encontrar el nombre del archivo según su contenido, por ejemplo, 'vbs' no es parte del nombre del archivo sino parte del contenido del archivo. ¿Cómo se podría modificar? Quizás algo como:
encontrar . -iname '*.zip' -print -exec unzip -l {} \; 2> error.txt | xargs??? ¿Alguien podría aconsejarme? Gracias
Respuesta1
Dado que va a recuperar el contenido del archivo, -l
enumerar el archivo zip no será suficiente. realmente necesitas descomprimirlo. entonces:
temp=`mktemp -d`
find . -iname '*.zip' -print -exec unzip -d $temp {} \; 2> error.txt
grep -ir vbs $temp