Відповіді:
Ось для чого uniq
стандартна команда.
uniq your-file
Зауважте, що деякі uniq
реалізації, такі як GNU uniq
, дадуть вам першу з послідовностей рядків, які сортують однакові (де strcoll()
повертається 0), на відміну від байт-байта однакові (де memcmp()
або strcmp()
повертає 0). Щоб примусити байт до порівняння байтів незалежно від uniq
реалізації, ви можете примусити локаль до C
:
LC_ALL=C uniq your-file
Vim може цього добре досягти:
:g/\v^(.*\n)\1/d
Або якщо ви бажаєте використовувати vim як інструмент командного рядка, ви можете це зробити як
vim file -c "g/\v^(.*\n)\1/d" -c "wq"
Таким чином, вам не доведеться боротися з виходом із vim пізніше;)
Пояснення:
:g/
На всіх рядках, які відповідають цьому регулярному вибору ...
\v^(.*\n)\1
Будь-яка лінія слідує за собою ...
/d
запустіть команду d elete (видаліть поточний рядок). Потрібно -c "wq"
зберегти зміни та вийти.