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 vbs
hay 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 stderr
corriente. 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.txt
con /dev/null
(es posible que esto no funcione en todas las versiones de cygwin)