Como hemos mencionado numerosas veces en el artículo anterior cubierto; ya sea directa o indirectamente, sigue siendo una afirmación válida que la profundidad informática de un sistema operativo Linux no se puede igualar con los avances de otros sistemas operativos.
Su naturaleza de código abierto crea un nivel invisible de transparencia para los usuarios finales. Mientras que otros sistemas operativos brindan el botón de inicio para hornear un pastel, Linux nos permite jugar con los ingredientes del pastel a medida que avanzamos hacia el producto final.
Este artículo buscará explorar los pasos visibles orientados a Linux para dividir un archivo de texto grande en varios archivos de texto más pequeños. Este tutorial se incluye en el segmento de administración de archivos de Linux.
Una de las razones por las que podría necesitar dividir un archivo de texto grande en un archivo más pequeño es para cumplir con los requisitos de memoria establecidos. Es posible que el archivo grande no quepa completamente en un medio extraíble, pero dividirlo facilita la transferencia en bits.
Tabla de Contenidos
Planteamiento del problema
Crearemos un archivo de texto de muestra llamado archivo_grande.txt para hacer referencia a lo largo de este tutorial.
$ sudo nano large_file.txt
Vamos a ver varias metodologías útiles basadas en Linux que nos ayudarán a dividir el archivo de texto grande anterior en varios archivos de texto pequeños. Las transferencias de archivos más pequeños a través de una red suelen ser más rápidas, lo que acelera el rendimiento de la red debido a las transferencias paralelas.
Usando el comando split de Linux
los separar El comando es parte del GNU Coreutils paquete y principalmente divide un archivo de entrada en varios archivos más pequeños.
La sintaxis para el uso de la separar el comando es el siguiente:
$ split [OPTION]... [FILE [PREFIX]]
los separar La utilidad está asociada con varias opciones de comando útiles según su página de manual ($ man split)
. El tamaño predeterminado del archivo a dividir es de 1000 líneas. El archivo dividido toma un sufijo predeterminado (X) y un prefijo predeterminado (Automóvil club británico).
$ split large_file.txt
Solo vemos un archivo dividido porque el archivo de texto original tiene menos de 1000 líneas, es decir 49 líneas, por lo que lógicamente creamos su duplicado.
$ wc -l large_file.txt
para retener el .txt
extensión de archivo después de dividir el archivo, usaremos la opción de comando --additional-suffix
.
$ split --additional-suffix=.txt large_file.txt
División de archivos especificando el número de líneas
Digamos que queremos dividir este archivo de texto grande en otros más pequeños con 12 líneas cada uno, usaremos el -l
opción de comando para especificar la división del número de línea que queremos.
$ split -l 12 --additional-suffix=.txt large_file.txt
los 49 forrado archivo_grande.txt se ha dividido en 5 archivos más pequeños cada uno con un máximo de 12 líneas.
$ cat xaa.txt | wc -l; cat xab.txt | wc -l; cat xac.txt | wc -l; cat xad.txt | wc -l; cat xae.txt | wc -l
División de archivos especificando los tamaños de archivo resultantes
Nuestro archivo tiene un tamaño de archivo de 170 bytes
$ ls -l large_file.txt
Para dividirlo en archivos de 30 bytes más pequeños, usaremos el -b
opción de comando.
$ split -b 30 --additional-suffix=.txt large_file.txt
El comando ha generado 6 archivos más pequeños con un tamaño de archivo máximo de 30 bytes cada uno.
$ ll -lh
División de archivos especificando un prefijo
Supongamos, por ejemplo, que necesitamos los archivos divididos de 30 bytes anteriores para tener el prefijo archivo_grande.logimplementaríamos el siguiente comando.
$ split -b 30 --additional-suffix=.txt large_file.txt large_file.log
División de archivos mediante el uso de prefijos numéricos
Si desea que los prefijos de archivos divididos se asocien con números numéricos como 00, 01 o 02 y no con letras como aa, ab o ac, implemente el comando con el -d opción de comando.
$ split -d -b 30 --additional-suffix=.txt large_file.txt large_file_log
Ahora podemos dividir cómodamente un archivo de texto grande en varios archivos más pequeños mientras conservamos el .txt
extensión de archivo en Linux.