ComenzarEmpieza gratis

¿Cómo puedo eliminar las líneas duplicadas?

Otro comando que se utiliza a menudo con sort es uniq, cuya función es eliminar las líneas duplicadas. Más concretamente, elimina las líneas duplicadas adyacentes. Si un archivo contiene:

2017-07-03
2017-07-03
2017-08-03
2017-08-03

entonces uniq producirá:

2017-07-03
2017-08-03

pero si contiene:

2017-07-03
2017-08-03
2017-07-03
2017-08-03

entonces uniq imprimirá las cuatro líneas. La razón es que uniq está hecho para trabajar con archivos muy grandes. Para eliminar líneas no adyacentes de un archivo, tendría que mantener todo el archivo en memoria (o al menos, todas las líneas únicas vistas hasta ahora). Eliminando solo los duplicados adyacentes, solo tiene que mantener en memoria la línea única más reciente.

Este ejercicio forma parte del curso

Introducción a Shell

Ver curso

Instrucciones de ejercicio

Escribe un conducto para:

  • obtener la segunda columna de seasonal/winter.csv,
  • eliminar la palabra "Tooth" de la salida para que solo se muestren los nombres de los dientes,
  • ordenar la salida de modo que todas las apariciones de un nombre de diente concreto sean adyacentes; y
  • mostrar cada nombre de "Tooth" una vez junto con un recuento de la frecuencia con la que se produce.

El inicio de tu canalización es el mismo que en el ejercicio anterior:

cut -d , -f 2 seasonal/winter.csv | grep -v Tooth

Amplíala con un comando sort, y utiliza uniq -c para mostrar líneas únicas con un recuento de la frecuencia con que se produce cada una, en lugar de utilizar uniq y wc.

Ejercicio interactivo práctico

Convierte la teoría en acción con uno de nuestros ejercicios interactivos

Empieza a hacer ejercicio