GNU/Linux >> Tutoriales Linux >  >> Linux

15 ejemplos de comandos de dividir y unir de Linux para administrar archivos grandes

Los comandos de división y unión de Linux son muy útiles cuando se manipulan archivos de gran tamaño. Este artículo explica cómo usar el comando dividir y unir de Linux con ejemplos descriptivos.

Sintaxis del comando Unir y dividir:

unir [OPCIÓN]… ARCHIVO1 ARCHIVO2
dividir [OPCIÓN]… [ENTRAR [PREFIX]]

Ejemplos de comandos divididos de Linux

1. Ejemplo básico de división

Aquí hay un ejemplo básico de comando dividido.

$ split split.zip 

$ ls
split.zip  xab  xad  xaf  xah  xaj  xal  xan  xap  xar  xat  xav  xax  xaz  xbb  xbd  xbf  xbh  xbj  xbl  xbn
xaa        xac  xae  xag  xai  xak  xam  xao  xaq  xas  xau  xaw  xay  xba  xbc  xbe  xbg  xbi  xbk  xbm  xbo

Entonces vemos que el archivo split.zip se dividió en archivos más pequeños con x** como nombres de archivo. Donde ** es el sufijo de dos caracteres que se agrega de forma predeterminada. Además, de forma predeterminada, cada archivo x** contendría 1000 líneas.

$ wc -l *
   40947 split.zip
    1000 xaa
    1000 xab
    1000 xac
    1000 xad
    1000 xae
    1000 xaf
    1000 xag
    1000 xah
    1000 xai
...
...
...

Entonces, el resultado anterior confirma que, de manera predeterminada, cada archivo x** contiene 1000 líneas.

2. Cambie la longitud del sufijo usando la opción -a

Como se discutió en el ejemplo 1 anterior, la longitud del sufijo predeterminado es 2. Pero esto se puede cambiar usando la opción -a.

Como puede ver en el siguiente ejemplo, está usando un sufijo de longitud 5 en los archivos divididos.

$ split -a5 split.zip
$ ls
split.zip  xaaaac  xaaaaf  xaaaai  xaaaal  xaaaao  xaaaar  xaaaau  xaaaax  xaaaba  xaaabd  xaaabg  xaaabj  xaaabm
xaaaaa     xaaaad  xaaaag  xaaaaj  xaaaam  xaaaap  xaaaas  xaaaav  xaaaay  xaaabb  xaaabe  xaaabh  xaaabk  xaaabn
xaaaab     xaaaae  xaaaah  xaaaak  xaaaan  xaaaaq  xaaaat  xaaaaw  xaaaaz  xaaabc  xaaabf  xaaabi  xaaabl  xaaabo

Nota:Anteriormente también hablamos sobre otras utilidades de manipulación de archivos:tac, rev, paste.

3.Personalice el tamaño del archivo dividido usando la opción -b

El tamaño de cada archivo dividido de salida se puede controlar con la opción -b.

En este ejemplo, los archivos divididos se crearon con un tamaño de 200 000 bytes.

$ split -b200000 split.zip 

$ ls -lart
total 21084
drwxrwxr-x 3 himanshu himanshu     4096 Sep 26 21:20 ..
-rw-rw-r-- 1 himanshu himanshu 10767315 Sep 26 21:21 split.zip
-rw-rw-r-- 1 himanshu himanshu   200000 Sep 26 21:35 xad
-rw-rw-r-- 1 himanshu himanshu   200000 Sep 26 21:35 xac
-rw-rw-r-- 1 himanshu himanshu   200000 Sep 26 21:35 xab
-rw-rw-r-- 1 himanshu himanshu   200000 Sep 26 21:35 xaa
-rw-rw-r-- 1 himanshu himanshu   200000 Sep 26 21:35 xah
-rw-rw-r-- 1 himanshu himanshu   200000 Sep 26 21:35 xag
-rw-rw-r-- 1 himanshu himanshu   200000 Sep 26 21:35 xaf
-rw-rw-r-- 1 himanshu himanshu   200000 Sep 26 21:35 xae
-rw-rw-r-- 1 himanshu himanshu   200000 Sep 26 21:35 xar
...
...
...

4. Cree archivos divididos con sufijo numérico usando la opción -d

Como se ve en los ejemplos anteriores, la salida tiene el formato de x** donde ** son alfabetos. Puede cambiar esto a número usando la opción -d.

Aquí hay un ejemplo. Esto tiene un sufijo numérico en los archivos divididos.

$ split -d split.zip
$ ls
split.zip  x01  x03  x05  x07  x09  x11  x13  x15  x17  x19  x21  x23  x25  x27  x29  x31  x33  x35  x37  x39
x00        x02  x04  x06  x08  x10  x12  x14  x16  x18  x20  x22  x24  x26  x28  x30  x32  x34  x36  x38  x40

5. Personalice el número de fragmentos divididos con la opción -C

Para controlar la cantidad de fragmentos, use la opción -C.

Este ejemplo creará 50 fragmentos de archivos divididos.

$ split -n50 split.zip
$ ls
split.zip  xac  xaf  xai  xal  xao  xar  xau  xax  xba  xbd  xbg  xbj  xbm  xbp  xbs  xbv
xaa        xad  xag  xaj  xam  xap  xas  xav  xay  xbb  xbe  xbh  xbk  xbn  xbq  xbt  xbw
xab        xae  xah  xak  xan  xaq  xat  xaw  xaz  xbc  xbf  xbi  xbl  xbo  xbr  xbu  xbx

6. Evite los fragmentos de tamaño cero con la opción -e

Al dividir un archivo relativamente pequeño en una gran cantidad de fragmentos, es bueno evitar los fragmentos de tamaño cero, ya que no agregan ningún valor. Esto se puede hacer usando la opción -e.

Aquí hay un ejemplo:

$ split -n50 testfile

$ ls -lart x*
-rw-rw-r-- 1 himanshu himanshu 0 Sep 26 21:55 xag
-rw-rw-r-- 1 himanshu himanshu 1 Sep 26 21:55 xaf
-rw-rw-r-- 1 himanshu himanshu 1 Sep 26 21:55 xae
-rw-rw-r-- 1 himanshu himanshu 1 Sep 26 21:55 xad
-rw-rw-r-- 1 himanshu himanshu 1 Sep 26 21:55 xac
-rw-rw-r-- 1 himanshu himanshu 1 Sep 26 21:55 xab
-rw-rw-r-- 1 himanshu himanshu 1 Sep 26 21:55 xaa
-rw-rw-r-- 1 himanshu himanshu 0 Sep 26 21:55 xbx
-rw-rw-r-- 1 himanshu himanshu 0 Sep 26 21:55 xbw
-rw-rw-r-- 1 himanshu himanshu 0 Sep 26 21:55 xbv
...
...
...

Entonces vemos que se produjeron muchos fragmentos de tamaño cero en la salida anterior. Ahora, usemos la opción -e y veamos los resultados:

$ split -n50 -e testfile
$ ls
split.zip  testfile  xaa  xab  xac  xad  xae  xaf

$ ls -lart x*
-rw-rw-r-- 1 himanshu himanshu 1 Sep 26 21:57 xaf
-rw-rw-r-- 1 himanshu himanshu 1 Sep 26 21:57 xae
-rw-rw-r-- 1 himanshu himanshu 1 Sep 26 21:57 xad
-rw-rw-r-- 1 himanshu himanshu 1 Sep 26 21:57 xac
-rw-rw-r-- 1 himanshu himanshu 1 Sep 26 21:57 xab
-rw-rw-r-- 1 himanshu himanshu 1 Sep 26 21:57 xaa

Entonces vemos que no se produjo ningún fragmento de tamaño cero en la salida anterior.

7. Personalice el número de líneas con la opción -l

El número de líneas por archivo dividido de salida se puede personalizar con la opción -l.

Como se ve en el ejemplo a continuación, los archivos divididos se crean con 20000 líneas.

$ split -l20000 split.zip

$ ls
split.zip  testfile  xaa  xab  xac

$ wc -l x*
   20000 xaa
   20000 xab
     947 xac
   40947 total

Obtenga información detallada usando la opción detallada

Para obtener un mensaje de diagnóstico cada vez que se abre un nuevo archivo dividido, use la opción detallada como se muestra a continuación.

$ split -l20000 --verbose split.zip
creating file `xaa'
creating file `xab'
creating file `xac'

Ejemplos de comandos de unión de Linux

8. Ejemplo básico de unión

El comando Unir funciona en el primer campo de los dos archivos (suministrados como entrada) haciendo coincidir los primeros campos.

Aquí hay un ejemplo:

$ cat testfile1
1 India
2 US
3 Ireland
4 UK
5 Canada

$ cat testfile2
1 NewDelhi
2 Washington
3 Dublin
4 London
5 Toronto

$ join testfile1 testfile2
1 India NewDelhi
2 US Washington
3 Ireland Dublin
4 UK London
5 Canada Toronto

Entonces vemos que un archivo que contiene países se unió a otro archivo que contiene capitales sobre la base del primer campo.

9. Unirse a trabajos en lista ordenada

Si alguno de los dos archivos proporcionados para unir el comando no está ordenado, aparece una advertencia en la salida y esa entrada en particular no está unida.

En este ejemplo, dado que el archivo de entrada no está ordenado, mostrará un mensaje de advertencia/error.

$ cat testfile1
1 India
2 US
3 Ireland
5 Canada
4 UK

$ cat testfile2
1 NewDelhi
2 Washington
3 Dublin
4 London
5 Toronto

$ join testfile1 testfile2
1 India NewDelhi
2 US Washington
3 Ireland Dublin
join: testfile1:5: is not sorted: 4 UK
5 Canada Toronto

10. Ignorar caso usando la opción -i

Al comparar campos, la diferencia entre mayúsculas y minúsculas se puede ignorar usando la opción -i como se muestra a continuación.

$ cat testfile1
a India
b US
c Ireland
d UK
e Canada

$ cat testfile2
a NewDelhi
B Washington
c Dublin
d London
e Toronto

$ join testfile1 testfile2
a India NewDelhi
c Ireland Dublin
d UK London
e Canada Toronto

$ join -i testfile1 testfile2
a India NewDelhi
b US Washington
c Ireland Dublin
d UK London
e Canada Toronto

11. Verifique que la entrada esté ordenada usando la opción –check-order

Aquí hay un ejemplo. Dado que testfile1 no se clasificó hacia el final, se produjo un error en la salida.

$ cat testfile1
a India
b US
c Ireland
d UK
f Australia
e Canada

$ cat testfile2
a NewDelhi
b Washington
c Dublin
d London
e Toronto

$ join --check-order testfile1 testfile2
a India NewDelhi
b US Washington
c Ireland Dublin
d UK London
join: testfile1:6: is not sorted: e Canada

12. No verifique la clasificación usando la opción –nocheck-order

Esto es lo contrario del ejemplo anterior. En este ejemplo, no se realiza ninguna comprobación de ordenación y no se mostrará ningún mensaje de error.

$ join --nocheck-order testfile1 testfile2
a India NewDelhi
b US Washington
c Ireland Dublin
d UK London

13. Imprima líneas no emparejables usando la opción -a

Si ambos archivos de entrada no se pueden asignar uno a uno, a través de la opción -a[FILENUM] podemos tener esas líneas que no se pueden emparejar durante la comparación. FILENUM es el número de archivo (1 o 2).

En el siguiente ejemplo, vemos que el uso de -a1 produjo la última línea en testfile1 (marcada en negrita a continuación) que no tenía par en testfile2.

$ cat testfile1
a India
b US
c Ireland
d UK
e Canada
f Australia

$ cat testfile2
a NewDelhi
b Washington
c Dublin
d London
e Toronto

$ join testfile1 testfile2
a India NewDelhi
b US Washington
c Ireland Dublin
d UK London
e Canada Toronto

$ join -a1 testfile1 testfile2
a India NewDelhi
b US Washington
c Ireland Dublin
d UK London
e Canada Toronto
f Australia

14. Imprima solo líneas no emparejadas usando la opción -v

En el ejemplo anterior, se generaron líneas emparejadas y no emparejadas en la salida. Pero, si solo se desea una salida no emparejada, use la opción -v como se muestra a continuación.

$ join -v1 testfile1 testfile2
f Australia

15. Únase en función de diferentes columnas de ambos archivos usando la opción -1 y -2

De forma predeterminada, las primeras columnas de ambos archivos se utilizan para comparar antes de unirse. Puede cambiar este comportamiento usando las opciones -1 y -2.

En el siguiente ejemplo, la primera columna de testfile1 se comparó con la segunda columna de testfile2 para producir la salida del comando de combinación.

$ cat testfile1
a India
b US
c Ireland
d UK
e Canada

$ cat testfile2
NewDelhi a
Washington b
Dublin c
London d
Toronto e

$ join -1 1 -2 2 testfile1 testfile2
a India NewDelhi
b US Washington
c Ireland Dublin
d UK London
e Canada Toronto

Linux
  1. Comando Cat de Linux:uso y ejemplos

  2. Ejemplos de comandos Objcopy de Linux para copiar y traducir archivos de objetos

  3. ¿Cómo copiar archivos en Linux y Unix? Ejemplos de comandos de 10 cp

  4. 10 ejemplos de comandos Cat para administrar archivos en Linux / UNIX

  5. unir ejemplos de comandos en Linux

Comando lsof en Linux (10 ejemplos)

Opciones de comando y ejemplos de Tee Command en Linux

Cat Command en Linux:ejemplos esenciales y avanzados

Comando lsof en Linux con ejemplos

Comando dividido de Linux con ejemplos

Comando Linux comm con ejemplos