Comandos de Linux

Comando uniq de Linux

Comando uniq de Linux
¿Qué es "uniq"? Es una gran herramienta de línea de comandos que informará u omitirá cualquier texto duplicado en la entrada dada. Es parte de las coreutils de GNU y, por lo tanto, está disponible en todos los sistemas UNIX / Linux que existen. Comencemos con "uniq"!

Uso de Uniq

Así es como se ve la estructura base de los comandos "uniq".

uniq

Por ejemplo, veamos el contenido de "duplicado.TXT". Por supuesto, contiene una gran cantidad de contenido de texto duplicado para el propósito de este artículo.

gato duplicado.txt | clasificar

Hay contenidos claramente duplicados, ¿verdad?? Filtremoslos a través de "uniq".

gato duplicado | ordenar | uniq

La salida se ve mucho mejor con solo los valores únicos, ¿verdad??

Sin embargo, no es necesario utilizar el método de tubería para hacer el trabajo. "Uniq" también puede trabajar directamente en los archivos.

uniq

Eliminar contenido duplicado

Sí, eliminar el contenido duplicado de la entrada y mantener solo la primera aparición es el comportamiento predeterminado de "uniq". Tenga en cuenta que esta eliminación duplicada solo ocurre cuando "uniq" encuentra elementos duplicados concurrentes.

Veamos este ejemplo. He creado otro "duplicado1.txt ”que contiene elementos duplicados. Sin embargo, no están adyacentes entre sí.

murciélago duplicado1.TXT

Ahora, filtre esta salida usando "uniq".

gato duplicado1.txt | uniq

Todos los contenidos duplicados están ahí! Por eso, si está trabajando con algo similar a esto, canalice el contenido a través de "ordenar" para asegurarse de que todos los contenidos estén ordenados y los duplicados estén adyacentes entre sí.

gato duplicado1.txt | clasificar

Ahora, "uniq" hará su trabajo normalmente.

gato duplicado1.txt | ordenar | uniq

Numero de repeticiones

Si lo desea, puede comprobar cuántas veces se repite una línea en el contenido. Simplemente use la marca "-c" con "uniq".

gato duplicado.txt | ordenar | uniq -c

Nota: "uniq" también hará su trabajo habitual de eliminar los duplicados.

Impresión de líneas duplicadas

La mayoría de las veces, queremos deshacernos de los duplicados, ¿verdad?? Esta vez, ¿qué tal si solo compruebas lo que está duplicado??

Sí, "uniq" también puede hacer eso. En este caso, debe utilizar la opción "-D". Usaré "ordenar" en el medio para obtener un resultado mejor y más refinado.

gato duplicado.txt | ordenar | uniq -D

GUAU! Eso es un montón de duplicados! Sin embargo, todos los duplicados están agrupados, lo que dificulta la navegación. ¿Qué tal agregar un pequeño espacio en el medio??

uniq --todos repetidos =

Aquí, hay 3 métodos diferentes disponibles: ninguno (valor predeterminado), anteponer y separar.

gato duplicado.txt | ordenar | uniq --todos-repetidos = anteponer

gato duplicado.txt | ordenar | uniq --todos repetidos = separados

Ahora se ve mejor.

Omitir la comprobación de unicidad

En muchos casos, la unicidad debe ser verificada por una parte diferente de la línea.

Entendamos esto con el ejemplo. En el archivo duplicate1.txt, digamos que la duplicación está determinada por la segunda parte. ¿Cómo le dices a "uniq" que haga eso?? Generalmente, busca el primer campo (por defecto). Bueno, también podemos hacer eso. Hay esta bandera "-f" para hacer el trabajo.

uniq -f
gato duplicado1.txt | sort -k 2 | uniq -f 1

Si se está preguntando con la marca "ordenar", es para decirle a "ordenar" que ordene según la segunda columna.

Mostrar todas las líneas pero duplicados separados

De acuerdo con todos los ejemplos mencionados anteriormente, "uniq" solo conserva la primera aparición del contenido duplicado y elimina el resto. ¿Qué tal eliminar por completo el contenido duplicado?? Sí, usando la bandera "-u", podemos forzar a "uniq" a mantener solo las líneas no repetitivas.

gato duplicado.txt | clasificar

gato duplicado.txt | ordenar | uniq -u

Mmm, ya se han ido demasiados duplicados ..

Omitir caracteres iniciales

Discutimos cómo decirle a "uniq" que haga su trabajo en otros campos, ¿verdad?? Es hora de comenzar la verificación después de varios caracteres iniciales. Para este propósito, la bandera "-s" acompañada por el número de caracteres le indicará a "uniq" que haga el trabajo.

gato duplicado1.txt | sort -k 2 | uniq -s 2

Es similar al ejemplo en el que "uniq" debía realizar su tarea solo en el segundo campo. Veamos otro ejemplo con este truco.

gato duplicado.txt | ordenar | uniq -s 5

Verifique los caracteres iniciales SOLAMENTE

Al igual que le dijimos a "uniq" que se saltara el primer par de caracteres, también es posible decirle a "uniq" que limite la comprobación dentro del primer par de caracteres. Hay una bandera "-w" dedicada para este propósito.

gato duplicado.txt | ordenar | uniq -w 5

Este comando le dice a "uniq" que realice una verificación de unicidad dentro de los primeros 5 caracteres.

Veamos otro ejemplo de este comando.

gato duplicado1.txt | ordenar | uniq -w 5

Elimina todas las demás instancias de entradas "duplicadas" porque hizo la comprobación de unicidad en la parte "dupli".

Insensibilidad a mayúsculas y minúsculas

Al verificar la unicidad, "uniq" también verifica las mayúsculas y minúsculas de los caracteres. En algunas situaciones, la distinción entre mayúsculas y minúsculas no importa, por lo que podemos usar la marca "-i" para que "uniq" no distinga entre mayúsculas y minúsculas.

Aquí les presento el archivo demo.

Alguna duplicación realmente inteligente con una mezcla de letras mayúsculas y minúsculas, a la derecha? Es hora de recurrir a la fuerza de "uniq" para purgar el desorden!

gato duplicado1.txt | ordenar | uniq -i

Deseo concedido!

Salida terminada en NULL

El comportamiento predeterminado de "uniq" es finalizar la salida con una nueva línea. Sin embargo, la salida también se puede terminar con un NULL. Eso es bastante útil si lo va a usar en secuencias de comandos. Aquí, la bandera "-z" es lo que hace el trabajo.

gato duplicado.txt | ordenar | uniq -z

Combinando múltiples banderas

Aprendimos una serie de banderas de "uniq", ¿verdad?? ¿Qué tal combinarlos juntos??

Por ejemplo, estoy combinando la insensibilidad a mayúsculas y minúsculas y el número de repeticiones juntos.

Si alguna vez planea mezclar varias banderas juntas, al principio, asegúrese de que funcionen de la manera correcta. A veces, las cosas simplemente no funcionan como deberían.

Pensamientos finales

"Uniq" es una herramienta bastante única que ofrece Linux. Con tantas funciones poderosas, puede ser útil de muchas maneras. Para obtener la lista de todas las banderas y sus explicaciones, consulte las páginas de información y manual de "uniq".

hombre uniq

info uniq

Disfrutar!

Juegos HD remasterizados para Linux que nunca tuvieron un lanzamiento de Linux antes
Muchos desarrolladores y editores de juegos están creando una remasterización HD de juegos antiguos para extender la vida útil de la franquicia, por f...
Cómo usar AutoKey para automatizar juegos de Linux
AutoKey es una utilidad de automatización de escritorio para Linux y X11, programada en Python 3, GTK y Qt. Usando su funcionalidad de scripting y MAC...
Cómo mostrar el contador de FPS en juegos de Linux
Los juegos de Linux obtuvieron un gran impulso cuando Valve anunció el soporte de Linux para el cliente Steam y sus juegos en 2012. Desde entonces, mu...