Tutoriales

Cómo encontrar la(s) línea(s) más larga(s) en un archivo en Linux

Al sistema operativo Linux le gusta presumir de su poder de cómputo y sus capacidades. Su enfoque algorítmico para cosas como el procesamiento de archivos, especialmente la administración de archivos, proporciona hitos importantes para los usuarios de Linux que buscan dominar la administración de Linux.

Un aspecto del manejo de archivos en el entorno del sistema operativo Linux que realmente debemos considerar es identificar las líneas más largas dentro de un archivo compatible con Linux editable.

Implicaciones prácticas de las líneas largas en un archivo

Imagine el escenario en el que trabaja en una empresa o está lidiando con un proyecto que procesa enormes archivos de registro. Estos archivos pueden mostrarse como una sola línea de texto cuando en realidad pueden contener miles de documentos JSON.

Si el tamaño de estas líneas de texto es muy o inusualmente largo, es posible que deban procesarse a través de un servidor proxy para redirigir correctamente los archivos a un servidor de destino, como un servidor de búsqueda elástico.

Sin embargo, estos cuidadosos pasos de manejo de archivos pueden resultar en errores de manejo de archivos no intencionales cuando todo lo que realmente está tratando son líneas extra largas en sus archivos. Es imposible diagnosticar un error de este tipo sin conocer la amenaza en el juego.

Este tutorial lo guiará a través de los pasos necesarios para identificar las líneas más largas en un archivo de destino en un entorno de sistema operativo Linux.

problema

Para hacer que este artículo sea más divertido y atractivo, crearemos un archivo de texto de referencia con varias líneas diferentes y luego implementaremos soluciones válidas de Linux para encontrar las líneas más largas.

$ sudo nano sample_file.txt
Archivo de Linux con las líneas más largas

Nos esforzaremos por identificar las líneas más largas en el archivo anterior (archivo de ejemplo.txt) sobre comandos útiles de Linux.

1. Encuentra la línea más larga en un archivo usando el comando Awk

Idealmente, podríamos anteponer cada línea en el archivo anterior con una sola línea Vaya comando para determinar sus longitudes exactas como se muestra a continuación.

$ awk '{printf "%2d| %s\n",length,$0}' sample_file.txt  
Encuentra la línea más larga en el archivo
Encuentra la línea más larga en el archivo

Como en la captura de pantalla anterior, 73 es la longitud de línea más larga.

Imprima la línea más larga en un archivo usando los comandos wc y grep

Al combinar estos dos comandos, puede usar expresiones regulares del comando grep y max-line-length del comando wc. Ese Baño El mando se hace cargo -L Opción de comando para determinar la longitud máxima de línea como se muestra a continuación.

$ grep -E "^.{$(tr '\t' ' '

El comando anterior debe imprimir las líneas más largas en el archivo archivo de ejemplo.txt.

Imprimir la línea más larga en el archivo
Imprimir la línea más larga en el archivo

Teníamos dos líneas idénticas con la mayor longitud de línea de 73el comando anterior imprimió el dos líneas. Si fuera solo una línea con la mayor longitud de línea 73, solo se imprimiría esa línea.

Ahora nos sentimos cómodos encontrando la(s) línea(s) más larga(s) en un archivo en Linux.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Botón volver arriba