Búsqueda de sitios web

PowerShell: cómo guardar cada línea de archivo de texto como matriz


A menudo es posible que desee guardar cada línea de un archivo de texto como una matriz en PowerShell.

Puede utilizar los siguientes métodos para hacerlo:

Método 1: utilizar Get-Content

$my_array = @(Get-Content players.txt)

Este ejemplo en particular guarda cada línea del archivo de texto llamado players.txt en una matriz llamada $my_array.

De forma predeterminada, el cmdlet Get-Content en PowerShell devuelve cada línea de un archivo de texto como una cadena separada, por lo que producirá una matriz en la que cada elemento de la matriz es una línea individual del archivo.

Tenga en cuenta que utilizamos el símbolo @ para garantizar que el objeto resultante sea una matriz.

Método 2: utilizar ReadAllLines

$my_array = [IO.File]::ReadAllLines('c:\users\bobbi\players.txt')

Este ejemplo en particular también guarda cada línea del archivo de texto llamado players.txt en una matriz llamada $my_array.

Este método es mucho más rápido que el método anterior porque utiliza el método System.IO.File ReadAllLines, que proviene directamente del marco .NET.

Tenga en cuenta que debe especificar la ruta absoluta al hacer referencia a un archivo utilizando este método porque .NET a menudo tiene un directorio actual diferente al de PowerShell.

Los siguientes ejemplos muestran cómo utilizar cada método en la práctica con un archivo llamado players.txt que contiene información sobre varios jugadores de baloncesto:

Ejemplo: cómo guardar cada línea de un archivo de texto como una matriz en PowerShell

Podemos usar la siguiente sintaxis con el cmdlet Get-Content para guardar cada línea del archivo de texto denominado players.txt en una matriz en PowerShell:

$my_array = @(Get-Content players.txt)

La siguiente captura de pantalla muestra cómo utilizar esta sintaxis en la práctica:

Observe que esto devuelve una matriz en la que cada elemento de la matriz representa una línea individual del archivo.

Al utilizar notación entre corchetes como $my_array[0], $my_array[1], $my_array[2], etc., podemos para recuperar la primera, segunda, tercera, etc. líneas del archivo.

Tenga en cuenta que también podemos usar el método ReadAllLines directamente desde el marco .NET para guardar cada línea del archivo como una matriz:

$my_array = [IO.File]::ReadAllLines('c:\users\bobbi\players.txt') 

La siguiente captura de pantalla muestra cómo utilizar esta sintaxis en la práctica:

Observe que este método también devuelve una matriz en la que cada elemento de la matriz representa una línea individual del archivo.

Si está trabajando con un archivo extremadamente grande, se recomienda utilizar este método porque es mucho más rápido que el método anterior.

Artículos relacionados