
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
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

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.

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.