Cómo usar el comando uniq para eliminar la línea de texto duplicado en el sistema Linux

  

En la operación del sistema Linux, el contenido del texto inevitablemente aparecerá líneas duplicadas. Si lo elimina manualmente, es más molesto cuando tiene más cantidad. ¿Qué método puede eliminar rápidamente los duplicados? Que hay de eso La siguiente pequeña serie le mostrará cómo usar el comando uniq para eliminar líneas duplicadas en Linux.

a, uniq utiliza para hacer

repetidas líneas de texto, básicamente, no lo que queremos, por lo que debe deshacerse de él. Hay otros comandos en Linux que pueden eliminar líneas duplicadas, pero creo que uniq sigue siendo conveniente. Cuando use uniq, preste atención a los dos puntos siguientes

1. Cuando trabaje con texto, generalmente se usa en combinación con el comando de clasificación, porque uniq no comprueba las líneas duplicadas a menos que sean líneas adyacentes. Si desea ordenar primero la entrada, use sort -u.

2, cuando la operación de texto, si el campo es un primer carácter nulo (por lo general incluye espacios y tabulaciones), luego los caracteres no nulos, los caracteres nulos antes de los caracteres en el campo se omitirán

Segundo, descripción del parámetro uniq

El código es el siguiente:

[zhangy @ BlackGhost ~] $ uniq --help

Uso: uniq [opciones]. . . [Archivo]

Filtra líneas adyacentes coincidentes de archivos de entrada o entrada estándar y escribe en archivos de salida o salida estándar. "/p" "p" no adjunta ninguna opción cuando las líneas coincidentes se fusionarán en la primera aparición. "/p" Los parámetros que deben usarse para la opción larga "p" también son necesarios para las opciones cortas.

-c, --count //prefijo cada línea con un número de prefijo que indica el número de apariciones de la línea correspondiente

-d, --repetida //salida solo líneas duplicadas

-D, --todos repetidos //Exportar solo líneas duplicadas, pero hay algunas líneas que dan salida a algunas líneas

-f, --skip-fields = N //- f Número de segmentos ignorados , -f 1 ignora el primer párrafo

-i, --ignore-case //no distingue entre mayúsculas y minúsculas

-s, --skip-chars = N //root-f es un poco Igual que, pero -s se ignora, cuántos caracteres en la parte posterior - s 5 ignoran los últimos 5 caracteres

-u, --unique//elimina el duplicado, se muestra todo, la función distinta de root de mysql Es un poco como

-z, - líneas finales terminadas en cero con 0 bytes, no en nueva línea

-w, --check-chars = N //después del carácter enésimo de cada línea El contenido no se verifica

--help //Muestra esta ayuda y sale

--version //Muestra la información de la versión y sale

donde -z no sabe qué Con

tres, pruebe el código de archivo de texto uniqtest

de la siguiente manera:

Esta es una prueba

Esta es una prueba

Esta es una prueba

Soy un tanque

Me encanta el tanque

Me encanta Tanque

esta es una prueba

que tienen un try

WhoM tienen un try

tienes un try

quiero Abure

esos son buenos hombres

somos buenos hombres

IV, ejemplo de explicación

El código es el siguiente:

[zhangy @ BlackGhost Mytest] $ uniq -c uniqtest

3 esta es una prueba

1 soy tanque

2 i love tank

1 esta es una prueba //y la primera línea se repite

1 quien tiene un try

1 WhoM tiene un try

1 tienes un try

1 Quiero Al extranjero

1 somos buenos hombres

1 somos buenos hombres

En el ejemplo anterior, podemos ver que una característica de uniq, al verificar líneas duplicadas, Sólo se comprueban las filas adyacentes. Repita los datos, debe haber muchos que no sean adyacentes.

El código es el siguiente:

[zhangy @ BlackGhost mytest] $ sort uniqtest | Uniq -c

1 WhoM intentarlo

1 soy tanque

2 Amo el tanque

1 Quiero ir al extranjero

4 esta es una prueba

1 esos son hombres buenos

1 somos hombres buenos

1 que tienen un intento

1 tienes un intento

Esto resolverá el problema mencionado en el ejemplo anterior

El código es el siguiente:

[zhangy @ BlackGhost mytest] $ uniq -d -c uniqtest

3 esta es una prueba

2 i love tank

uniq -d muestra solo líneas duplicadas

El código es el siguiente:

[zhangy @ BlackGhost Mytest] $ uniq -D uniqtest

esta es una prueba

esta es una prueba

esta es una prueba

i love tank

i love tank

uniq -D muestra solo líneas repetidas y líneas repetidas. No puede usar con -c

El código es el siguiente:

[zhangy @ BlackGhost mytest] $ uniq -f 1 -c uniqtest

3 esta es una prueba

1 soy un tanque

2 amo un tanque

1 esta es una prueba

2 que tienen un intento

1 tienes un intento

1 quiero ir al extranjero

2 esos son hombres buenos //solo una línea, mostrando dos líneas

Aquí solo hay una línea de la cosa, pero la pantalla se repite, esto Esto se debe a que -f 1 ignora la primera columna y comprueba si hay duplicados desde el segundo campo.

El código es el siguiente:

[zhangy @ BlackGhost mytest] $ uniq -i -c uniqtest

3 esta es una prueba

1 soy tank < Br>

2 i love tank

1 esta es una prueba

2 que tienen un try //una mayúscula, una minúscula

1 tienes un try < Br>

1 quiero ir al extranjero

1 esos son buenos hombres

1 somos buenos hombres

Al verificar, no se distinguen mayúsculas y minúsculas

El código es el siguiente:

[zhangy @ BlackGhost mytest] $ uniq -s 4 -c uniqtest

3 esta es una prueba

1 soy tank

2 i love tank

1 esta es una prueba

3 who have a try //¿Cuál es la diferencia entre un ejemplo en la raíz

1 que quiero en el extranjero?

1 esos son buenos hombres

1 somos buenos hombres

Al marcar, no consideres los primeros 4 caracteres, así que tienes una oportunidad y la tienes. .

El código es el siguiente:

[zhangy @ BlackGhost mytest] $ uniq -u uniqtest

soy un tanque

esta es una prueba

quién tiene un intento

Quién tengo un intento

tienes un intento

quiero ir al extranjero

esos son hombres buenos

somos buenos hombres

Para repetir los elementos y luego mostrarlos todos

El código es el siguiente:

[zhangy @ BlackGhost mytest] $ uniq -w 2 -c uniqtest < Br>

3 esta es una prueba

3 soy tanque

1 esta es una prueba

1 a quien tengo una oportunidad

1 WhoM Inténtalo

1 tienes un intento

1 quiero ir al extranjero

1 esos son buenos hombres

1 somos buenos hombres

El contenido del segundo carácter después de cada línea no se comprueba, por lo que el i am tank root i love tank es el mismo.

Lo anterior es la forma de usar el comando uniq para eliminar comandos de línea duplicados en Linux. A veces, las líneas duplicadas en el texto no solo son inútiles, sino que también ocupan espacio. Use el comando uniq para borrarlo.

Copyright © Conocimiento de Windows All Rights Reserved