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
- 1. Cree un archivo de texto de muestra
- 2. Usar uniq para eliminar líneas repetidas del texto
- 3. Haz un recuento del número de repeticiones
- 4. Imprime solo las líneas repetidas
- 5. Imprime solo las líneas no repetidas
- 6. ¿Cómo eliminar líneas repetidas que no aparecen juntas?
- 7. ¿Cómo almacenar la salida en un archivo?
- Conclusión
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 :
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.