Cómo leer un archivo de texto con PowerShell Get-Content – ​​TrucosInformaticos

Powershell

PowerShell es un lenguaje de secuencias de comandos versátil y un shell de línea de comandos equipado con una amplia gama de comandos para administrar y manipular datos de manera efectiva.

Uno de esos comandos invaluables es Obtener el contenido, que permite a los usuarios leer el contenido de un archivo de texto y realizar varias operaciones en él. En esta publicación de blog, profundizaremos en las complejidades de la Obtener el contenido comando y proporcionar explicaciones detalladas de su uso con ejemplos prácticos.

¿Qué es el comando Get-Content de PowerShell?

En su esencia, el Obtener el contenido El comando en PowerShell está diseñado para leer el contenido de un archivo de texto y devolver los datos como una matriz de cadenas. Cada elemento de la matriz representa una línea del archivo de texto, lo que lo convierte en una opción ideal para procesar datos basados ​​en texto en varios escenarios.

Ya sea que esté tratando con archivos de registro, archivos de configuración o cualquier otra fuente de datos basada en texto, Obtener el contenido demuestra ser un poderoso aliado en su arsenal de PowerShell.

Sintaxis y parámetros

Antes de profundizar en los ejemplos, familiaricémonos con la sintaxis básica del Obtener el contenido comando y sus parámetros esenciales:

Get-Content [-Path] <string[]> [-ReadCount <int>] [-TotalCount <int>] [-Tail <int>] [-Delimiter <string>] [-Raw] [-Filter <string>] [<CommonParameters>]

Esto es lo que significan estos parámetros:

  • Camino: especifica la ruta del archivo de texto que desea leer. Puede proporcionar una sola ruta de archivo o una matriz de rutas de archivo si desea leer varios archivos simultáneamente.
  • Número de lecturas: Le permite controlar el número de líneas leídas a la vez. Este parámetro es útil cuando se trabaja con archivos grandes y le permite procesar datos en partes manejables en lugar de cargar todo el archivo a la vez.
  • Cuenta total: especifica el número total de líneas que desea leer del archivo. Este parámetro lo ayuda a limitar la lectura y el procesamiento de datos del archivo.
  • Cola: Le permite recuperar un número específico de líneas desde el final del archivo. Esto es particularmente útil cuando está interesado en las entradas más recientes en un archivo de registro o cualquier dato que se agregue al archivo a lo largo del tiempo.
  • delimitador: si su archivo de texto utiliza un carácter específico como delimitador, puede especificarlo aquí para procesar el archivo en consecuencia.
  • Crudo: lee todo el contenido del archivo como una sola cadena con varias líneas. Esto es útil cuando se conservan los saltos de línea y se procesa el contenido como un todo en lugar de línea por línea.
  • Filtrar: muestra solo el contenido de los archivos que coinciden con el patrón especificado. Por ejemplo, «*.registro” lee todos los archivos cuyos nombres de archivo coincidan con “.REGISTRO» extensión.

Ahora que entendemos los conceptos básicos de la Obtener el contenido comando, exploremos algunos ejemplos prácticos de su uso.

Las siguientes secciones muestran algunos ejemplos de PowerShell Get Content. Estos ejemplos pueden ayudarlo a comenzar con el concepto y crear una estrategia para su código.

Mostrar contenido de un archivo de texto

El caso de uso más básico de Obtener el contenido es leer y mostrar el contenido de un archivo de texto. Obtener contenido de PowerShell puede lograr esto de dos maneras: leyendo el contenido como una matriz o como una sola cadena con varias líneas.

Leer contenido como una matriz

Digamos que tenemos un archivo llamado mysqldb_1.log en el directorio actual. Podemos usar PowerShell Get Content para leer el archivo y almacenarlo en una matriz. Cada elemento de la matriz representará una línea del archivo.

$contentArray = Get-Content -Path .\mysqldb_1.log

Dado que el archivo de texto se leyó en una matriz, el $contenidoArrayconfirmemos cuántas líneas tiene.

$contentArray.count

Como puede ver a continuación, el archivo tenía 20 líneas que Obtener el contenido leer.

Ahora, si queremos inspeccionar el contenido del archivo, simplemente podemos generar la matriz:

$contentArray

powershell obtener ejemplos de contenido

Lea el contenido como una sola cadena con varias líneas

En algunos casos, es posible que desee leer el archivo completo como una sola cadena con varias líneas. Esto es útil cuando necesita procesar el contenido como un todo, conservando los saltos de línea. Puede lograr esto especificando el -Crudo cambiar.

En este ejemplo, leeremos el mismo archivo (mysqldb_1.log) en una sola cadena.

$contentString = Get-Content -Path .\mysqldb_1.log -Raw

Dado que el archivo de texto se leyó en una sola cadena, solo debe tener 1 línea. Para confirmar, ejecute el siguiente comando.

$contentString.Count

Como era de esperar, el contenido se lee como una cadena.

cuenta de lectura de PowerShell

Y para mostrar el contenido:

$contentString

Verá que tiene el contenido correcto, que se muestra como una sola cadena de varias líneas.

cadena de contenido

Líneas de visualización desde arriba y desde abajo

A menudo, es posible que solo necesite ver líneas específicas desde el principio o el final del archivo. Con PowerShell Get Content, podemos lograr esto rápidamente usando el -Cuenta total y -Cola parámetros

Mostrar las primeras N líneas

Digamos que queremos ver las primeras 10 líneas del mysqldb_1.log archivo:

Get-Content -Path .\mysqldb_1.log -TotalCount 10

Obtener-Contenido-Ruta

Mostrar las últimas N líneas

Por otro lado, si estamos interesados ​​en las últimas 5 líneas del archivo, podemos usar el -Cola parámetro:

Get-Content -Path .\mysqldb_1.log -Tail 5

Intitulado

Líneas de visualización que coinciden con una palabra clave de cadena

Otra poderosa capacidad de PowerShell Get Content es la capacidad de filtrar líneas en función de una palabra clave específica. Esto es particularmente útil cuando se busca información particular dentro de un archivo.

Digamos que queremos encontrar y mostrar líneas que contengan la palabra «Error de indexación» en el mysqldb_1.log archivo:

Get-Content -Path .\mysqldb_1.log | Where-Object { $_ -match "Indexing Error" }

El Donde-Objeto cmdlet se usa aquí para filtrar las líneas que contienen la palabra «Error de indexación.”

Mostrar contenido de un archivo de texto

Mostrar contenido de un archivo de texto con paginación

Cuando se trata de archivos grandes que no caben completamente en la pantalla, es útil mostrar el contenido con paginación. PowerShell ofrece la Anfitrión externo – Paginación comando para este fin. Alternativamente, puede utilizar el tradicional más dominio.

Leamos un archivo llamado mysqldb_3.log con 78 líneas de contenido como ejemplo.

Uso de paginación fuera del host

Get-Content -Path .\mysqldb_3.log | Out-Host -Paging

Como puedes ver, la consola deja de mostrar el resto del contenido que no cabía en la pantalla. Aparecerá un mensaje en la parte inferior para presionar ESPACIO para mostrar la página siguiente, RC (Entrar) para mostrar la siguiente línea, o q abandonar.

Anfitrión externo

usando más

Get-Content -Path .\mysqldb_3.log | more

Con el comando más, el indicador inferior dice «– Más –.” Puedes presionar ESPACIO para mostrar la página siguiente, Ingresar para mostrar la línea siguiente, o q abandonar.

Obtener contenido más

Agregar contenido de un archivo de texto a otro

PowerShell Obtener contenido también se puede combinar con el Archivo de salida -Anexar Comando para agregar el contenido de un archivo de texto a otro. Esto es útil para consolidar datos de varios archivos en un solo archivo.

Digamos que tenemos dos archivos, mysqldb_1.log y mysqldb_2.logy queremos añadir el contenido de mysqldb_1.log a mysqldb_2.log:

Get-Content -Path .\mysqldb_1.log | Out-File -Append -Path .\mysqldb_2.log

Agregar contenido de un archivo de texto a otro

Combinar contenidos de varios archivos de texto

La combinación del contenido de varios archivos de texto en un nuevo archivo se puede lograr mediante PowerShell Obtener contenido y el Fuera de archivo dominio.

Digamos que tenemos dos archivos, mysqldb_1.log y mysqldb_2.logy queremos fusionar su contenido en un nuevo archivo llamado archivos_combinados.log:

Get-Content -Path .\mysqldb_1.log, .\mysqldb_2.log | Out-File -Path .\merged_files.log

En este ejemplo, proporcionamos una matriz de rutas de archivo para Obtener el contenido, que lee el contenido de ambos archivos. El contenido combinado se escribe luego en el nuevo archivo, archivos_combinados.logutilizando el Fuera de archivo dominio.

Contenido de múltiples archivos de texto powershell

Conclusión

En conclusión, PowerShell Obtener contenido (Obtener el contenido) es una poderosa herramienta para leer y manipular archivos de texto. Ya sea que necesite mostrar líneas específicas, filtrar contenido en función de palabras clave o combinar varios archivos, PowerShell lo tiene cubierto.

Al aprovechar los ejemplos y el conocimiento en esta publicación de blog, puede mejorar sus tareas de procesamiento de archivos y ser más eficiente en sus esfuerzos de creación de scripts de PowerShell.

¡Feliz codificación!

4/5 - (85 votos)

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *