Búsqueda de sitios web

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_pattern

La 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_patterns

La 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í.

Artículos relacionados