1. Learn
  2. /
  3. Курси
  4. /
  5. Вступ до Shell

Connected

вправа

Як вилучити дублікати рядків?

Ще одна команда, яку часто використовують із sort, — це uniq, завдання якої — вилучати повторювані рядки. Точніше кажучи, вона прибирає лише суміжні дублікати рядків. Якщо файл містить:

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

то uniq виведе:

2017-07-03
2017-08-03

але якщо він містить:

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

тоді uniq надрукує всі чотири рядки. Причина в тому, що uniq створено для роботи з дуже великими файлами. Щоб вилучити несуміжні дублікати з файла, їй довелося б тримати в пам'яті весь файл (або принаймні усі унікальні рядки, які вже зустрілися). Прибираючи лише суміжні дублікати, вона має зберігати в пам'яті лише останній унікальний рядок.

Інструкції

100 XP

Напишіть конвеєр, щоб:

  • отримати другий стовпець із seasonal/winter.csv,
  • прибрати слово "Tooth" з виводу, щоб залишилися лише назви зубів,
  • відсортувати вивід так, щоб усі входження певної назви зуба були суміжними; та
  • показати кожну назву зуба один раз разом із кількістю її появ.

Початок вашого конвеєра такий самий, як у попередній вправі:

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

Доповніть його командою sort, а також використайте uniq -c, щоб показати унікальні рядки разом із кількістю появ кожного, замість використання uniq і wc.