GNU/Linux >> Tutoriales Linux >  >> Linux

Comando Csplit de Linux explicado para principiantes (6 ejemplos)

Mientras trabaja en la línea de comandos en Linux, es posible que se encuentre en situaciones en las que necesite dividir un archivo en varias partes. Si ya está buscando una manera de hacer esto, o simplemente quiere saber cómo se puede hacer esto, le alegrará saber que existe una herramienta llamada csplit - que está construido para este propósito.

En este tutorial, discutiremos los conceptos básicos de esta herramienta y aprenderemos cómo se puede usar. Pero antes de hacerlo, vale la pena mencionar que todos los comandos/instrucciones mencionados aquí han sido probados en Ubuntu 16.04LTS.

Comando Linux Csplit

Así es como lo define la página man del comando:

csplit - split a file into sections determined by context lines

La siguiente es su sintaxis genérica:

csplit [OPTION]... FILE PATTERN...

Los archivos pequeños individuales creados por csplit tienen nombres como xx00 y xx01. La siguiente definición, tomada de la página de manual del comando, debería aclarar las cosas:

Output pieces of FILE separated by PATTERN(s) to files 'xx00', 'xx01', ..., and output byte 
counts of each piece to standard output.

Los siguientes ejemplos de preguntas y respuestas deberían darle una buena idea sobre cómo funciona el comando csplit.

P1. ¿Cómo dividir archivos según el número de líneas?

Suponga que su archivo contiene 6 líneas, y el requisito es dividir ese archivo en la tercera línea, entonces esto se puede hacer pasando '3' como argumento de la línea de comando después del comando y el nombre del archivo.

Por ejemplo, en nuestro caso, el archivo1 contenía las siguientes líneas:

1       Asia
2      Africa
3      Europe
4   North America
5   South America
6     Australia

Y aquí está el comando que ejecutamos:

csplit file1 3

Los números producidos en la salida son el conteo de bytes para los archivos que produjo el comando. No hace falta decir que se produjeron dos archivos en la salida, a saber, xx00 y xx01.

El contenido de estos archivos confirma que la división ocurrió en la línea número 3.

P2. ¿Cómo dividir archivos usando expresiones regulares?

También puede usar expresiones regulares con el comando csplit. Por ejemplo, en el caso anterior, si desea que la herramienta repita el patrón una vez más, puede hacerlo con el siguiente comando:

csplit file1 3 {1}

Entonces, en este caso, se produjeron tres archivos de salida:

P3. ¿Cómo tener un prefijo personalizado en lugar del predeterminado 'xx'?

De forma predeterminada, los archivos que produce csplit en la salida tienen 'xx' como prefijo. Sin embargo, si lo desea, puede cambiar el prefijo usando -f opción de línea de comandos, que requiere el nuevo prefijo como entrada.

Por ejemplo, el siguiente comando producirá archivos con el prefijo 'htf'.

csplit file1 1 -f htf

P4. ¿Cómo forzar a csplit a no eliminar los archivos de salida en caso de error?

El comando csplit, de manera predeterminada, elimina los archivos de salida (cualquiera, si se crearon) tan pronto como se encuentra con una situación de error. Por ejemplo, la siguiente captura de pantalla confirma que finalmente no se produjo ningún archivo de salida:

Sin embargo, si lo desea, puede cambiar este comportamiento utilizando -k opción en el comando. Por ejemplo, el mismo comando se ejecutó nuevamente, pero con esta opción, y los archivos de salida no se eliminaron esta vez.

P5. ¿Cómo suprimir líneas que coinciden con el patrón de entrada?

El comando csplit también ofrece una opción para suprimir líneas que coincidan con el patrón de entrada. La opción en cuestión es --suppress-matched .

Por ejemplo, el siguiente comando divide el archivo (archivo1) en la línea 2 (xx00 contendrá la línea 1, mientras que xx11 contendrá el resto de las líneas).

csplit file1 2

Pero si desea suprimir la línea 2, puede ejecutar el siguiente comando:

csplit --suppress-matched file1 2

P6. ¿Cómo usar un número personalizado de dígitos en lugar de los 2 predeterminados?

Al igual que el prefijo en sí, la cantidad de dígitos que siguen al prefijo en los nombres de archivo de salida también se puede personalizar. Suponga que desea tener nombres como xx000 y xx0001, puede hacerlo usando -n opción de línea de comando, que requiere un número de entrada que signifique el nuevo número de dígitos.

Por ejemplo:

csplit -n 1 file1 2

El comando antes mencionado generaría nombres de archivo como xx0, xx1, etc.

Conclusión

Es posible que un usuario promedio de la línea de comandos de Linux no requiera csplit a diario, pero definitivamente es una utilidad importante que al menos debe conocer. Hemos cubierto la mayoría de los ejemplos básicos y las opciones de la línea de comandos aquí. Pruébelos y luego diríjase a la página de manual de la herramienta para obtener más información.


Linux
  1. Comando de pasta de Linux explicado para principiantes (5 ejemplos)

  2. Comando wc de Linux explicado para principiantes (6 ejemplos)

  3. Comando de desexpansión de Linux explicado para principiantes (con ejemplos)

  4. Comando de salida de Linux explicado para principiantes (con ejemplos)

  5. Comando objdump de Linux explicado para principiantes (7 ejemplos)

Comando de corte de Linux explicado para principiantes (con ejemplos)

Comando de tiempo de espera de Linux explicado para principiantes (con ejemplos)

Comando Linux dd explicado para principiantes (8 ejemplos)

Comando mv de Linux explicado para principiantes (8 ejemplos)

Comando Linux md5sum explicado para principiantes (5 ejemplos)

Comando host de Linux explicado para principiantes (8 ejemplos)