PowerShell: use Import-Csv donde la fila contiene una cadena
A menudo, es posible que desee utilizar el cmdlet Import-Csv en PowerShell para importar únicamente filas de un archivo CSV que contengan una cadena específica.
Puede utilizar los siguientes métodos para hacerlo:
Método 1: importar filas que contengan una cadena específica
Import-Csv $my_file | where {$_.team -like '*ets*'}
Este ejemplo en particular importa solo las filas del archivo CSV especificado en la ruta en $my_file donde la columna team contiene "ets" en algún lugar de la cadena.
Método 2: importar filas que contengan una de varias cadenas específicas
$my_teams = @('Mavs', 'Lakers', 'Hawks', 'Spurs')
Import-Csv $my_file | where {$my_teams -contains $_.team}
Este ejemplo en particular importa solo las filas del archivo CSV especificado en la ruta en $my_file donde la columna team contiene una de las cuatro cadenas especificadas en $my_teams matriz.
Los siguientes ejemplos muestran cómo utilizar cada método en la práctica.
Ejemplo 1: importar filas que contienen una cadena específica en PowerShell
Supongamos que tenemos un archivo CSV guardado en la siguiente ubicación:
c:\users\bobbi\nba_data.csvPodemos usar el cmdlet Get-Content para ver el contenido de este archivo:
El archivo contiene tres columnas que muestran el nombre del equipo, los puntos y las asistencias de varios jugadores de baloncesto.
Supongamos que nos gustaría importar solo las filas del archivo CSV donde la columna team contiene "ets" en el nombre.
Podemos utilizar la siguiente sintaxis para hacerlo:
$my_file = 'c:\users\bobbi\nba_data.csv'
Import-Csv $my_file | where {$_.team -like '*ets*'}
La siguiente captura de pantalla muestra cómo utilizar esta sintaxis en la práctica:
Tenga en cuenta que solo podemos importar con éxito las filas del archivo que contienen "ets" en algún lugar del nombre del equipo.
Ejemplo 2: importar filas que contienen una de varias cadenas específicas en PowerShell
Una vez más supongamos que tenemos un archivo CSV guardado en la siguiente ubicación:
c:\users\bobbi\nba_data.csvPodemos usar el cmdlet Get-Content para ver el contenido de este archivo:
Supongamos que nos gustaría importar solo las filas del archivo CSV donde la columna team contiene una de las siguientes cadenas:
- mavs
- Lakers
- Halcones
- Espuelas
Podemos utilizar la siguiente sintaxis para hacerlo:
$my_file = 'c:\users\bobbi\nba_data.csv'
$my_teams = @('Mavs', 'Lakers', 'Hawks', 'Spurs')
Import-Csv $my_file | where {$my_teams -contains $_.team}
La siguiente captura de pantalla muestra cómo utilizar esta sintaxis en la práctica:
Tenga en cuenta que solo podemos importar correctamente las filas del archivo que contienen uno de los cuatro nombres de equipo que especificamos.


