PowerShell: cómo utilizar Get-Content con filtro
Puede utilizar el cmdlet Get-Content en PowerShell para recuperar el contenido de un archivo en particular.
A menudo, es posible que desee filtrar los resultados del cmdlet Get-Content para mostrar solo las líneas de un archivo que contienen patrones particulares.
Puede utilizar los siguientes métodos para hacerlo:
Método 1: utilizar Get-Content y filtrar según una cadena
Get-Content employees.txt | Select-String -pattern $my_pattern
Este ejemplo en particular recuperará todas las líneas del archivo llamado employees.txt que contiene el patrón especificado en la variable $my_pattern.
Método 2: utilizar Get-Content y filtrar según varias cadenas
Get-Content employees.txt | Select-String -pattern $my_patterns
Este ejemplo en particular recuperará todas las líneas del archivo llamado employees.txt que contenga cualquiera de los patrones especificados en la matriz $my_patterns.
El siguiente ejemplo muestra cómo utilizar cada uno de estos métodos en la práctica.
Ejemplo 1: utilizar Get-Content y filtrar según una cadena
Supongamos que tenemos un archivo llamado employees.txt en nuestro directorio actual que contiene los valores de ID de varios empleados de alguna empresa.
Podemos usar el cmdlet Get-Content para ver todas las líneas de este archivo:
Supongamos que nos gustaría filtrar solo las líneas del archivo que contienen el patrón "A00" en algún lugar del valor de ID del empleado.
Podemos utilizar la siguiente sintaxis para hacerlo:
$my_pattern = "A00"
Get-Content employees.txt | Select-String -pattern $my_patternLa siguiente captura de pantalla muestra cómo utilizar esta sintaxis en la práctica:
Tenga en cuenta que esto devuelve sólo las líneas del archivo que contienen el patrón "A00" en algún lugar de la línea.
Si desea devolver solo el contenido sin líneas vacías, puede filtrar por la propiedad Línea:
$my_pattern = "A00"
Get-Content employees.txt | Select-String -pattern $my_pattern | % { $_.Line }La siguiente captura de pantalla muestra cómo utilizar esta sintaxis en la práctica:
Esto devuelve sólo las líneas del archivo que contienen el patrón "A00" y ninguna línea vacía antes o después del contenido.
Ejemplo 2: utilizar Get-Content y filtrar según varias cadenas
Supongamos que nos gustaría filtrar las líneas en el archivo employees.txt que contienen cualquiera de los siguientes patrones en algún lugar del valor de ID del empleado:
- A00
- B14
- C00
Podemos utilizar la siguiente sintaxis para hacerlo:
$my_patterns = @("A00", "B14", "C00")
Get-Content employees.txt | Select-String -pattern $my_patternsLa siguiente captura de pantalla muestra cómo utilizar esta sintaxis en la práctica:
Observe que esto devuelve solo las líneas del archivo que contienen uno de los tres patrones que especificamos.
Nota: Puede encontrar la documentación completa para el cmdlet Get-Content en PowerShell aquí.



