Ajuste el comando grep para evitar líneas 'extra'

Ajuste el comando grep para evitar líneas 'extra'

Tengo que encontrar algo de texto dentro de archivos comprimidos. Estoy usando Cygwin. Algunos archivos comprimidos están vacíos. Obviamente no quiero tener información "ruidosa" sobre esos "archivos zip vacíos". P.ej

find . -iname '*.zip' -print -exec unzip -l {} \; |grep -i vbs

¿Dónde vbshay una cadena que estoy buscando?

El problema es que devuelve lo que estoy buscando pero también devuelve mucho ruido con líneas como esta:

C\ProgramData\ABC\DEF\VBScripts\OutputArchiveFiles.vbs
warning [/z/XYZ/Backup/123/456/Backup Set 1/Backup Files 1/Backup files 2.zip]:  zipfile is empty

No quiero ver esas líneas con 'el archivo zip está vacío'

Intenté canalizarlo |grep -v 'zipfile is empty'pero todavía genera esas líneas también.

Mi pregunta: ¿cómo puedo evitar imprimir esas líneas 'vacías' y ver solo las líneas que estoy buscando? es decir, vbs?

Respuesta1

Esas líneas adicionales probablemente estén en la stderrcorriente. Podrías probar viendo siredirigir a un archivo separado(p.ej command 2> error.txt)

Básicamente, ejecuta:

find . -iname '*.zip' -print -exec unzip -l {} \; 2> error.txt |grep -i vbs 

Si esto soluciona su problema, puede reemplazarlo error.txtcon /dev/null(es posible que esto no funcione en todas las versiones de cygwin)

información relacionada