Saltar al contenido

Cómo usar el comando csplit para dividir archivos en Linux

2 1 Cómo usar el comando csplit para dividir archivos en Linux

csplit es una popular utilidad de línea de comandos de Linux que se utiliza para dividir el contenido de un archivo en dos. El archivo que desea cambiar debe ser un archivo de texto con un «.textoextensión.


El comando es fácil de usar y funciona bien en todas las distribuciones de Linux. Con el uso de varios indicadores disponibles para csplit, también puede personalizar la salida según sus necesidades.

Aquí se explica cómo usar csplit para dividir un archivo en Linux.


¿Qué es csplit?

Usado en Linux y otros sistemas operativos similares a Unix, csplit puede dividir un archivo en archivos separados determinados por reglas de contexto.

La sintaxis básica del comando es:

 csplit [OPTION] [PATTERN] 

csplit vs división

A la mayoría de los usuarios de Linux les gusta usar el comando dividir cuando se trata de dividir un archivo en varios archivos más pequeños. El problema con este comando es que depende del tamaño de bytes o tamaño de línea para dividir los archivos.

Esto no es factible en escenarios en los que desea dividir los archivos en función de su contenido en lugar de su tamaño. Aquí es cuando csplit viene al rescate, ya que divide el archivo en fragmentos de tamaño fijo según el contenido en lugar de la cantidad de bytes.

Cómo instalar csplit en Linux

csplit está preinstalado en casi todas las distribuciones de Linux. Sin embargo, si obtiene el error «csplit: comando no encontrado», significa que la herramienta no está instalada en su sistema. Para instalar csplit en Ubuntu, ejecute:

 sudo apt-get install coreutils 

En Arch Linux, ejecute:

 sudo pacman -S coreutils 

Para instalar csplit en Fedora y RHEL:

 sudo dnf install coreutils 

Cómo usar csplit en Linux

Cree un archivo de texto en su sistema para ver cómo funciona csplit. Utilice el comando táctil para crear un archivo vacío.

 touch filename.txt 

Una vez que haya creado el archivo, ábralo con el editor nano para editar el contenido.

 nano filename.txt 

Después de agregar algo de contenido al archivo, presione Ctrl+X y luego Y para guardarlo y cerrarlo.

Ejecute lo siguiente para verificar el contenido del archivo usando el comando cat:

 cat filename 
se crea un archivo de texto en la terminal de Ubuntu

Use el comando csplit para dividir un archivo

Para comprender cómo funciona csplit, primero mire el contenido del archivo que se usa como ejemplo aquí.

Se muestra un archivo y su contenido.

El archivo contiene nueve líneas numeradas del 1 al 9. Si necesita dividir el archivo en dos, ¿cómo le dice a csplit qué contenido enviar al primer archivo y cuál enviar al otro? Eso es fácil. En el comando, solo necesita decirle a csplit desde qué línea comenzar la división.

Esto se hace especificando el número de línea. Por ejemplo, si desea dividir el archivo de la tercera línea con la palabra «Londres», ingrese 3 en el comando. Introduzca el comando de la siguiente manera:

 csplit filename.txt 3 

Este comando divide inmediatamente el archivo por la mitad. Use el comando ls para enumerar todos los contenidos del directorio para ver los archivos de salida. Encontrarás los nuevos archivos con los nombres xx00 y xx01 junto al archivo original.

Utilice el comando cat para verificar el contenido de ambos archivos.

El comando csplit se ha utilizado en la terminal de ubuntu para dividir un archivo

Como puede ver, csplit divide el archivo en dos partes desde la tercera línea como se especifica en el comando.

Las opciones del comando csplit

Estas son algunas de las opciones de línea de comandos de csplit que puede usar:

1. Cambiar el prefijo de los archivos de salida

También conocida como la bandera de prefijo, -F cambia el prefijo en el nombre del archivo. Es posible que haya notado que cuando csplit divide el archivo, también lo hacen los archivos recién creados. XX como prefijo en los nombres de archivo. Puede cambiar esto usando el -F bandera en el comando.

Por ejemplo, si desea que los nombres de archivo A B C como prefijo en lugar de XXejecute el comando de la siguiente manera:

 csplit -f abc filename.txt 3 
El comando csplit se usó con el indicador -f

Como puede verse, después de la división, ambos archivos tienen A B C como prefijo en los nombres.

2. Guarde los archivos si se producen errores

Él -k o el –Manten los archivos La opción no elimina los archivos de salida si se produjo un error en el comando csplit.

Emita el siguiente comando erróneo:

 csplit -k randomfile.txt 2 {3} 
El comando csplit se usó con la opción k

3. Cambiar el número de dígitos en el nombre del archivo

Esta opción le permite decirle al comando csplit cuántos dígitos desea ver en el nombre del archivo que sigue al prefijo. También se llama la bandera de números.

Para mantener solo un dígito en el nombre del archivo, emita el siguiente comando:

 csplit -n 1 randomfile.txt 2 
El comando csplit se usa con la bandera n

Sin el -norte marca, verá dos dígitos en el nombre del archivo de forma predeterminada.

4. Divida el archivo sin ejecutar el tamaño

También conocida como la bandera silenciosa, la -s flag divide silenciosamente el archivo sin especificar el tamaño de los archivos de salida.

 csplit -s randomfile.txt 3 
El comando csplit se usa con la bandera s

5. Ver la ayuda de la línea de comandos

Para ver detalles de todas las opciones disponibles para csplit, use el -h o –ayudar bandera en el comando.

 csplit  
El comando csplit se usa con la bandera h

6. Verifique el número de versión del csplit

Para ver qué versión de csplit está usando, ejecute el comando con el –versión bandera:

 csplit  
El comando csplit se usa con la bandera v

7. Omita una línea específica al dividir

También puede utilizar el –suprimir-emparejado Opción de línea de comando para omitir una línea en particular al dividir el archivo.

 csplit --suppress-matched filename.txt 5 

Al crear los dos archivos, csplit ignorará la quinta línea y dividirá el archivo de la línea siguiente.

El comando csplit se usa con la opción de supresión de coincidencia

La quinta línea del archivo original contiene la palabra ‘Berlín’. En el archivo de salida, se omite «Berlín».

Divida archivos sin esfuerzo con un solo comando en Linux

Hay muchas herramientas de línea de comandos disponibles para administrar archivos en un sistema Linux. Uno de ellos es csplit. Por defecto, está disponible en todos los sistemas Linux. Si no, simplemente instálelo a través de la línea de comando.

csplit es una forma fácil y eficiente de dividir un archivo cuando necesita dividir el archivo en función de su contenido. csplit viene con varias opciones de línea de comando que le brindan la flexibilidad de personalizar la salida a su gusto. Existen varias herramientas de línea de comandos para ver el contenido de un archivo en Linux si desea verificar los archivos después de dividirlos.