ejemplos content powershell grep

content - powershell select-string regex



¿Cómo puedo grep para un patrón de texto en un archivo de texto comprimido? (3)

Nuestro archivo de alimentación diaria tiene un tamaño promedio de 2 GB. Estos archivos se archivan en un solo archivo zip al final de cada mes y se almacenan en un recurso compartido de red. De vez en cuando, tengo la necesidad de buscar ciertos registros en esos archivos. Para ello, me conecto desde un escritorio remoto al servidor compartido, descomprimo los archivos en una carpeta temporal, ejecuta la búsqueda de grep (o PowerShell) y luego borro la carpeta temporal. Ahora, debido a que nuestro servidor se está quedando sin espacio en el disco, ya no se recomienda descomprimirlos todos en una carpeta temporal. ¿Cuál es una manera eficiente de realizar una búsqueda de expresiones regulares en esos archivos comprimidos con un impacto mínimo en los recursos de disco o red?


Hay algunos comandos relacionados con zip en las Extensiones de Comunidad Powershell (PSCX) . Sin embargo, no creo que hagan lo que tú quieres (aunque podría estar totalmente equivocado). En su lugar, usaría .Net Zip Library (DotNetZip) que le permite esencialmente listar los nombres de los archivos en un archivo y luego extraer los que desea.


Las extensiones de la comunidad de PowerShell (PSCX) incluyen los cmdlets Read-Archive y Expand-Archive , pero no incluyen (¿todavía?) Un proveedor de navegación que haría lo que usted desea muy simple. Dicho esto, puedes usar Read-Archive y Expand-Archive . Algo como este bit no probado

Read-Archive -Path foo.zip -Format Zip | ` Where-Object { $_.Name -like "*.txt" } | ` Expand-Archive -PassThru | select-string "myRegex"

Te permitiría buscar sin extraer todo el archivo.


zgrep en linux. Si estás en Windows, puedes descargar GnuWin que contiene un puerto de Windows de zgrep.