Saltar al contenido

Cómo usar el comando Csplit en Linux

¿Se pregunta cómo usar el comando csplit en Linux?

El comando csplit en Linux es una utilidad que se utiliza para dividir un archivo en archivos individuales más pequeños determinados por el contenido del archivo. El archivo inicial generalmente permanece inalterado. El archivo original y los archivos más pequeños son normalmente archivos de texto.

A veces, el archivo original es demasiado grande, pesado o demasiado largo. Esto puede resultar en un aumento del tiempo de ejecución del archivo. Los archivos más pequeños creados por el comando csplit se ejecutan más fácilmente, se ejecutan en paralelo y se ejecutan más rápido.

La sintaxis general utilizada es csplit [OPTION]... FILE PATTERN... En este artículo, aprenderemos cómo dividir archivos en archivos más pequeños y manejables usando el comando csplit.

¡Empecemos!

Usando el comando csplit.

Para comenzar a usar el comando csplit, abra su Terminal de comando presionando control + Alt + T. Aquí es donde escribirás los parámetros de tu argumento.

También necesitará el archivo de texto con líneas de contexto que se dividirán en archivos más pequeños.

A continuación, se muestran algunos ejemplos de cómo se usa el comando csplit.

Csplit basado en un número específico de líneas.

Csplit nos permite dividir un archivo de texto en función de las líneas numéricas. Nos permite especificar cuántas líneas queremos en cada archivo más pequeño.

Aquí hay un ejemplo.

Tenemos un archivo de muestra test.txt que contiene una lista con 7 líneas.

1 desk
2 tables
3 beds
4 cabinets
5 chairs
6 dressers
7 cupboards

Nos gustaría dividir el archivo en la cuarta línea. Esto se puede hacer pasando ‘4’ en el argumento de la línea de comando después del nombre del archivo.

Aquí está el comando que ejecutaremos en el Terminal de comando.

$ csplit test 4

A continuación se muestran los resultados después de la ejecución. Los números que se muestran son el recuento de bytes de los archivos que ha generado el comando.

comando csplit en Linux

Los archivos producidos están etiquetados xx00 y xx01 por defecto. Puede verlos ejecutando el comando cat xx00 y cat xx01 en tu Terminal de comando. El cat comando lee y muestra el contenido del archivo.

comando csplit en Linux

Como se muestra a continuación, podemos especificar un parámetro de argumento para dividir un archivo en varias líneas específicas.

$ csplit test 9 62 88 

Aquí, asumimos que el archivo inicial tiene 100 líneas. El comando csplit generará cuatro archivos dado el comando anterior. El xx00 El archivo contendrá las líneas 1-8, el xx01 El archivo contendrá las líneas 9-61, el xx02 El archivo contendrá las líneas 62-87, y el xx03 El archivo contendrá las líneas 88-100.

Csplit basado en Regex Match.

Csplit nos permite dividir un archivo haciendo coincidir una cadena con una expresión regular. Realiza el split donde hay coincidencia.

Dividiremos el archivo test.txt basado en la cadena que comienza con <version>. Esto significa que cada bloque entre la etiqueta de apertura <version> y la etiqueta de cierre </version> estará en un archivo separado.

A continuación, se muestra una muestra del contenido del archivo.

<version>
    <name>Product 1</name>
    <type>2021</type>
</version>
<version>
    <name>Product 2</name>
    <type>2020</type>
</version>
<version>
    <name>Product 3</name>
    <type>2020</type>
</version>

Aquí está el comando csplit que usaremos para dividir test.txt.

$ csplit test ‘/^<version>$/’ ‘{*}’

La interpretación del parámetro del argumento se muestra a continuación.

prueba – este es el archivo de entrada
/ ^ $ / – « es un patrón de coincidencia para cada línea
{*} – esto significa que el patrón anterior se repetirá hasta que se agoten las líneas.

Aquí está la salida, donde vemos que el cuadro rojo muestra el recuento de bytes producido. También podemos ver los tres archivos producidos con su contenido, como lo muestran los recuadros verdes.

comando csplit en Linux

Csplit basado en la coincidencia de patrones.

Un archivo de texto puede tener un patrón que aparece varias veces en el contenido. Csplit puede hacer coincidir el patrón en el archivo con el parámetro de comando y luego realizar una división.

Ahora, queremos dividir el archivo. test.txt archivo donde el patrón es ‘0000’:

678910
qwer
asdf
0000
klklkl
12345
0000

Usaremos este parámetro de argumento:

$ csplit test ‘/0000/+1’ {*}

Aquí está la interpretación del parámetro anterior:

{*} – esto significa que el argumento se repetirá hasta que se agote la entrada.
/ 0000 / + 1 – esto significa el patrón 0000 se emparejará, y +1 se agregará para que 0000 aparecerá en el siguiente archivo dividido.

Aquí hay una captura de pantalla de la salida con el patrón en la parte inferior de cada archivo:

comando csplit en Linux

Agregue un prefijo personalizado con el comando Csplit.

En lugar de usar el predeterminado xx prefijo que produce csplit para el nombre del archivo, podemos usar -f o --prefix opciones de la línea de comandos para definir un prefijo único.

En el siguiente ejemplo, el nombre del archivo es prueba, y el nuevo prefijo será sub.

$ csplit test 1 -f sub

Uso de Csplit para mantener archivos producidos con error.

De forma predeterminada, el comando csplit elimina archivos tan pronto como se encuentra un error. Si no queremos que se eliminen los archivos, usamos -k o --keep-files en la opción de comando.

Así es como se usa:

$ csplit -k test 2

Defina el número de dígitos del nombre de archivo mediante el comando Csplit.

El número predeterminado de dígitos en un nombre de archivo es 2. Si desea cambiar el número de dígitos de xx01 a xx0 usamos el -n o --digits opciones de comando.

Aquí está el parámetro para usar en el Terminal de comando:

$ csplit -n 1 test 2

Eliminar archivos de salida vacíos mediante el comando Csplit.

Hay casos en los que los archivos de salida están vacíos después de ejecutar el comando csplit. Para eliminar estos archivos vacíos, usamos -z o --elide-empty-files en el parámetro de argumento.

Aquí está la sintaxis:

$ csplit -z test 4

Esperamos que haya aprendido las diferentes formas de utilizar el comando csplit.

Hay muchos más comandos que se utilizan en Linux. Si desea aprender a programar tareas repetitivas, consulte Cómo usar el comando cron en Linux.

Hemos llegado al final de nuestro artículo sobre cómo usar el comando csplit en Linux. Si tiene alguna pregunta o sugerencia, háganoslo saber en la sección de comentarios a continuación.

( function( d, s, id ) {
var js, fjs = d.getElementsByTagName( s )[0];
if ( d.getElementById( id ) ) return;
js = d.createElement( s ); js.id = id;
js.src = «https://connect.facebook.net/en_GB/sdk.js#xfbml=1&version=v2.5&appId=305449883698649»;
fjs.parentNode.insertBefore( js, fjs );
}( document, ‘script’, ‘facebook-jssdk’ ) );

¡Haz clic para puntuar esta entrada!
(Votos: 1 Promedio: 5)