Comando Uniq en Linux: ¿qué es y cómo usarlo?

Linux ofrece muy buenas herramientas de edición y procesamiento de texto. Una de estas herramientas es el comando único . El comando uniq lo ayuda a detectar y eliminar ocurrencias adyacentes de la misma línea. Eso significa que se trata de repeticiones de oraciones en un texto.

Tabla de contenido

Usando el comando uniq en Linux

En este tutorial veremos cómo funciona el comando uniq. Empecemos.

1. Cree un archivo de texto de muestra

Crearemos un archivo de texto de muestra con algunas líneas repetidas.

El texto del archivo se muestra a continuación:

                      
The weather is good today.
The weather is good today.
The Weather Is Good Today.
Today is a sunny day.
Today is a sunny day.
Today is a sunny day.

                    

Aquí las dos primeras líneas son iguales. La tercera línea es diferente y las líneas restantes son todas iguales.

Para crear un archivo con este texto, use el comando cat.

                      
cat > file.txt

                    

Producción :

Archivo de texto

2. Usar uniq para eliminar líneas repetidas del texto

Para eliminar líneas repetidas del texto, utilice:

                      
uniq file.txt

                    

Producción :

                      
The weather is good today.
The Weather Is Good Today.
Today is a sunny day.

                    

Ya no hay repeticiones en el texto. Como puede ver, la salida muestra la línea 1 y la línea 2 como líneas únicas aunque el contenido sea el mismo. Eso es porque Linux distingue entre mayúsculas y minúsculas.

3. Haz un recuento del número de repeticiones

Para contar el número de repeticiones utilice la siguiente línea de código:

                      
uniq -c file.txt

                    

Producción :

                      
 2 The weather is good today.
 1 The Weather Is Good Today.
 3 Today is a sunny day.

                    

La salida contiene líneas del texto con el recuento al principio.

4. Imprime solo las líneas repetidas

El comando uniq le da la opción de imprimir solo las líneas que ocurren más de una vez. Para imprimir solo las líneas repetidas, use:

                      
uniq -D file.txt 

                    

Producción :

                      
The weather is good today.
The weather is good today.
Today is a sunny day.
Today is a sunny day.
Today is a sunny day.

                    

5. Imprime solo las líneas no repetidas

Esto es lo contrario de lo example encima. Cuando usas el -u bandera junto con comando único entonces solo se imprimen las líneas que ocurren una vez. Para imprimir solo las líneas no repetidas, use:

                      
uniq -u file.txt 

                    

Producción :

                      
The Weather Is Good Today.

                    

6. ¿Cómo eliminar líneas repetidas que no aparecen juntas?

Si desea eliminar varias apariciones de una línea que no aparecen juntas, primero puede ordenar el texto.

Para exampleconsidere el texto que figura a continuación :

                      
The weather is good today
Today is a sunny day
The weather is good today
The Weather Is Good Today
Today is a sunny day
Today is a sunny day

                    

Veamos qué sucede cuando ejecutamos el comando uniq en este texto.

                      
uniq file.txt

                    

Producción :

                      
The weather is good today
Today is a sunny day
The weather is good today
The Weather Is Good Today
Today is a sunny day

                    

No hay cambios en el texto. Usemos la ordenación para que las mismas líneas aparezcan juntas.

Podemos ordenar el archivo y almacenar la salida en otro archivo con el uso del comando sort:

                      
sort file.txt > file1.txt

                    

Después de ordenar el texto se ve así:

                      
The Weather Is Good Today
The weather is good today
The weather is good today
Today is a sunny day
Today is a sunny day
Today is a sunny day

                    

Ahora podemos usar el comando uniq para eliminar las líneas repetidas.

                      
uniq file1.txt

                    

Producción :

                      
The Weather Is Good Today
The weather is good today
Today is a sunny day

                    

También podemos contar el número de ocurrencias de cada línea.

                      
uniq -c file1.txt

                    

Producción :

                      
  1 The Weather Is Good Today
  2 The weather is good today
  3 Today is a sunny day

                    

7. ¿Cómo almacenar la salida en un archivo?

Cuando ejecuta el comando uniq en un archivo, el contenido del archivo original no se modifica. Para guardar la salida del comando uniq, puede redirigirlo a un archivo. Puedes hacerlo usando:

                      
uniq file.txt > [filename]

                    

Conclusión

Este tutorial fue sobre Comando uniq en Linux. Aprendimos cómo usar este comando para eliminar las ocurrencias repetidas de una línea. ¡Espero que te hayas divertido aprendiendo con nosotros! Puede aprender más sobre el comando uniq usando el comando man.

Related Posts