Leer archivo CSV línea por línea en PowerShell
PowerShell es un lenguaje de secuencias de comandos versátil que brinda soporte sólido para trabajar con archivos CSV (separados por comas). Su comando Import-CSV se utiliza para importar archivos CSV y el cmdlet ForEach-Object para leer un archivo CSV línea por línea en PowerShell.
Leer archivos CSV línea por línea en PowerShell es útil para procesar archivos grandes como registros y CSV o aplicar lógica personalizada a cada fila.
En este artículo, analizaremos cómo leer un archivo CSV línea por línea en PowerShell utilizando los cmdlets Import-CSV y ForEach-Object con ejemplos prácticos.
Importar archivos CSV en PowerShell
El cmdlet Import-CSV en PowerShell se utiliza para importar un archivo CSV.
# Import csv file from the specified path
$teamInfo = Import-Csv -Path D:\PS\team_info.csv
# Print the $teamInfo variable to check data available in csv file
$teamInfoEn el script de PowerShell anterior, el cmdlet Import-CSV leerá el archivo y almacenará su contenido en la variable $teamInfo.
El resultado del script después de leer el archivo CSV es:
PS C:\> $teamInfo = Import-Csv -Path D:\PS\team_info.csv PS C:\>
PS C:\> $teamInfo
Group Name Years
----- ---- -----
Dev Tom 4
Sale Aron 5
PS C:\> Leer archivos CSV línea por línea
Para leer el archivo CSV línea por línea en PowerShell, usaremos el cmdlet Import-CSV para leer el contenido del CSV y el cmdlet ForEach-Object para iterar a través del filas.
# Import csv file from the specified path
$teamInfo = Import-Csv -Path D:\PS\team_info.csv
$teamInfo | ForEach-Object {
# Store the individual row in $row
$row = $_
Write-Host "Group Name:$($row.Group), Name: $($row.Name)"
}En el script de PowerShell anterior, el comando Import-CSV lee el archivo CSV y almacena el contenido en la variable $teamInfo. Los datos CSV en una variable se canalizan a través del operador de canalización (|) al ForEach-Object para iterar a través de las filas para su posterior procesamiento.
El resultado del script anterior después de leer el archivo CSV línea por línea es:
PS D:\PS> # Import csv file from the specified path
$teamInfo = Import-Csv -Path D:\PS\team_info.csv
$teamInfo | ForEach-Object {
# Store the individual row in $row
$row = $_
Write-Host "Group Name:$($row.Group), Name: $($row.Name)"
}
Group Name:Dev, Name: Tom
Group Name:Sale, Name: Aron
Filtrar filas específicas de un archivo CSV
Consideremos un ejemplo para leer un archivo CSV grande línea por línea para filtrar filas de un archivo que contiene un valor específico en una columna /específica.
# Import csv file from the specified path
$teamInfo = Import-Csv -Path D:\PS\team_info.csv
$teamInfo | ForEach-Object {
# Check if the Group column contains "Dev" value
if ($_.Group -eq "Dev")
{
Write-Host "Dev Team Member Name: $($_.Name)"
}
}En el script de PowerShell anterior, el comando Import-CSV lee un archivo CSV y lo almacena en la variable $teamInfo. El comando ForEach-Object itera a través de las filas y filtra las filas donde la columna Group en CSV contiene el valor 'Dev'.
El resultado del script anterior después de filtrar filas específicas de un archivo CSV es:
PS D:\PS> # Import csv file from the specified path
$teamInfo = Import-Csv -Path D:\PS\team_info.csv
$teamInfo | ForEach-Object {
if ($_.Group -eq "Dev") {
Write-Host "Dev Team Member Name: $($_.Name)"
}
}
Dev Team Member Name: Tom
PS D:\PS> Consejo interesante: ¡Cómo utilizar el comando Exportar-CSV para exportar a un archivo CSV en PowerShell!
Conclusión
Espero que el artículo anterior sobre cómo leer archivos CSV línea por línea en PowerShell usando los cmdlets Import-CSV y ForEach-Object le resulte útil.
Puede encontrar más temas sobre los comandos de PowerShell Active Directory y los conceptos básicos de PowerShell en la página de inicio de ShellGeek.