75
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
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.
Y para mostrar el contenido:
$contentString
Verá que tiene el contenido correcto, que se muestra como una sola cadena de varias líneas.
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
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
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 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.
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.
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
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.
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!